Ubuntu 24.04
Sponsored Link

Kubernetes : Worker ノードを追加する2024/06/07


既存の Kubernetes クラスターに Worker ノードを新規に追加する場合は以下のように設定します。

当例では以下のように 4 台のノードを使用してクラスターを構成しています。
ここへ、新たに [node03.srv.world (] を Worker ノードとして追加します。

+----------------------+   +----------------------+
|  [ ctrl.srv.world ]  |   |   [ dlp.srv.world ]  |
|     Manager Node     |   |     Control Plane    |
+-----------+----------+   +-----------+----------+
        eth0|             eth0|
            |                          |
            |                          |
        eth0|             eth0|
+-----------+----------+   +-----------+----------+
| [ node01.srv.world ] |   | [ node02.srv.world ] |
|     Worker Node#1    |   |     Worker Node#2    |
+----------------------+   +----------------------+



[2] Control Plane ノードで認証トークンを確認します。
kubeadm token create --print-join-command

kubeadm join --token pqsfr3.5zt0ffe08xi1iz4x --discovery-token-ca-cert-hash sha256:9cb21e3807780e1acf9ad9b6369ce54b1141ecf007d099675b23b6c3368494c9
[3] 新規に追加するノードで、Control Plane ノードで確認した認証トークン用コマンドを実行します。
kubeadm join --token pqsfr3.5zt0ffe08xi1iz4x \
--discovery-token-ca-cert-hash sha256:9cb21e3807780e1acf9ad9b6369ce54b1141ecf007d099675b23b6c3368494c9

[preflight] Running pre-flight checks
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-check] Waiting for a healthy kubelet. This can take up to 4m0s
[kubelet-check] The kubelet is healthy after 503.162529ms
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap

This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
[4] Manager ノードでノード情報を確認しておきます。新規追加ノードが STATUS = Ready であれば OK です。
kubectl get nodes

NAME               STATUS   ROLES           AGE     VERSION
dlp.srv.world      Ready    control-plane   3h33m   v1.30.1
node01.srv.world   Ready    <none>          3h28m   v1.30.1
node02.srv.world   Ready    <none>          3h27m   v1.30.1
node03.srv.world   Ready    <none>          56s     v1.30.1

kubectl get pods -A -o wide | grep node03

kube-system   calico-node-gl4k8                        1/1     Running   0               86s        node03.srv.world   <none>           <none>
kube-system   kube-proxy-8c2hq                         1/1     Running   0               86s        node03.srv.world   <none>           <none>