マスターと 2 つのミニオンの 3 つのサーバーで実行されている Kubernetes クラスターがあります。ミニオンをもう1人追加したいと思います。完全なインストールを再度行うことなく、ミニオンを追加することはできますか? これまでのところ、これを行うためのガイドを検索すると、クラスター全体を起動するための優れたガイドしか見つかりません。
2 に答える
私にとって、マスターとミニオンの違いは、開始するプロセスとオーケストレーションです(マスターはミニオンに完了したことを知らせ、ミニオンは合図を待ちます)。物事が起きた後にミニオンを育てることは、シグナリングがすでに行われていることを除いて、何の違いもないので、ミニオンはただ現れます. これは私にとって合理的な実験のように思えたので、試してみようと思いました! 私はデジタル オーシャン vps で実行しており、coreos (安定版) と cloud-config を使用してフリート + flanneld + k8s を起動しています。私が持っているマスターで:
- etcd
- 海軍
- フランネル
- ドッカー
- kube-apiserver
- kube-controller-manager
- kube-スケジューラー
- kube-register
ここで重要なプロセスは kube-register です。その出力を次のように見ます。
journalctl -u kube-register
ミニオンがいつ登録するかを確認します。現在持っているすべてのミニオンを表示するには:
core@pa1 ~/tmp $ kubectl get minions
NAME LABELS STATUS
104.236.214.244 <none> Ready
104.236.31.77 <none> Ready
私が持っているプロセスのミニオンについて:
- 海軍
- フランネル
- ドッカー
- kube-proxy
- kube-kubelet
kube-kubelet はマスターに登録するものだと思いますが、間違っている可能性があります。マスターが kubelet に healthz を常に問い合わせていることは知っています。そのため、ミニオンが作業の準備ができているかどうかがわかります。とにかく、マスターとミニオンのクラウド構成を作成するスクリプトがあります。そのスクリプトを変更して、マスタークラウド構成を「スキップ」し、ミニオン構成のみを実行しました。私はそれを実行し、ここに私の手下があります:
core@pa1 / $ kubectl get minions
NAME LABELS STATUS
104.236.214.244 <none> Ready
104.236.31.77 <none> Ready
45.55.164.39 <none> Ready
長い話になりますが、既存のノード クラスタにミニオンを追加することは可能です。あなたがどのようにディスカバリーを行っているかはわかりませんが、最初にミニオンをマスターに「紹介」するために使用した方法は何でも機能します。
私もしばらくこれで行き詰まりました。解決策は驚くほど簡単であることがわかりました。
すでにマスターアップしている場合は、接続されていないミニオンで次のプロセスを表示順に開始します。(別のネットワークオーバーレイを使用している場合は、最初に同様のネットワークオーバーレイを開始できると思います)。
/opt/bin/flanneld --etcd-endpoints=http://<masterip>:4001
/opt/bin/kubelet --address=0.0.0.0 --port=10250 --hostname-override=<localhostip> --api-servers=http://<masterip>:8080 --logtostderr=true --cluster-domain=cluster.local --cluster-dns=192.168.3.10
/opt/bin/kube-proxy --master=http://<masterip> --logtostderr=true
疑わしい場合は、接続されている minon のプロセスの 1 つを見て、各プロセスが実行されているフラグを確認してください。