Linuxワーカーノードの追加
このページでは、kubeadmクラスターにLinuxワーカーノードを追加する方法を示します。
始める前に
- ワーカーノードとして追加する各マシンに、kubeadmのインストールで要求されている、kubeadm、kubelet、コンテナランタイム等のコンポーネントがインストールされていること。
kubeadm initで構築され、kubeadmを使用したクラスターの作成ドキュメントの手順に従った稼働中のkubeadmクラスターが存在すること。- ノードにスーパーユーザー権限でアクセスできること。
Linuxワーカーノードの追加
新たなLinuxワーカーノードをクラスターに追加するために、以下を各マシンに対して実行してください。
- SSH等の手段でマシンへ接続します。
kubeadm init実行時に出力されたコマンドを実行します。例:
sudo kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash> kubeadm joinに関する追加情報
備考:
<control-plane-host>:<control-plane-port>にIPv6タプルを指定するには、IPv6アドレスを角括弧で囲みます。 例: [2001:db8::101]:2073トークンが不明な場合は、コントロールプレーンノードで次のコマンドを実行すると取得できます。
# コントロールプレーンノード上で実行してください。 sudo kubeadm token list 出力は次のようになります。
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS 8ewj1p.9r9hcjoqgajrj4gi 23h 2018-06-12T02:51:28Z authentication, The default bootstrap system: signing token generated by bootstrappers: 'kubeadm init'. kubeadm: default-node-token デフォルトでは、トークンは24時間後に有効期限が切れます。 現在のトークンの有効期限が切れた後にクラスターにノードを参加させたい場合は、コントロールプレーンノード上で次のコマンドを実行することで、新しいトークンを生成できます。
# コントロールプレーンノード上で実行してください。 sudo kubeadm token create このコマンドの出力は次のようになります。
5didvk.d09sbcov8ph2amjw 新たなトークンを生成しながらkubeadm joinコマンドを出力するには、次のコマンドを使用します。
sudo kubeadm token create --print-join-command --discovery-token-ca-cert-hashの値が不明な場合は、コントロールプレーンノード上で次のコマンドを実行することで取得できます。
# コントロールプレーンノード上で実行してください。 sudo cat /etc/kubernetes/pki/ca.crt | openssl x509 -pubkey | openssl rsa -pubin -outform der 2>/dev/null | \ openssl dgst -sha256 -hex | sed 's/^.* //' 出力は次のようになります。
8cb2de97839780a412b93877f8507ad6c94f73add17d5d7058e91741c9d5ec78 kubeadm joinコマンドによって以下のように出力されるはずです。
[preflight] Running pre-flight checks ... (log output of join workflow) ... Node join complete: * Certificate signing request sent to control-plane and response received. * Kubelet informed of new secure connection details. Run 'kubectl get nodes' on control-plane to see this machine join. 数秒後、kubectl get nodesを実行すると、出力内にこのノードが表示されるはずです(kubectlコマンドは、コントロールプレーンノード等で実行してください)。
備考:
クラスターのノードは、通常は順番に初期化されるため、CoreDNSのPodは全て最初のコントロールプレーンノードで実行されている可能性があります。 高可用性を実現するため、新たなノードを追加した後にはkubectl -n kube-system rollout restart deployment corednsコマンドを実行してCoreDNSのPodを再配置してください。次の項目
- Windowsワーカーノードを追加する方法を参照してください。
最終更新 August 29, 2025 at 2:19 PM PST: add print kubeadm join command (ecda65e1f4)