Thursday, November 27, 2025

 

Kubernetes : Add Worker Nodes

 

Add new Worker Nodes to existing Kubernetes Cluster.

This example is based on the cluster environment like follows.
It adds [node03.srv.world (10.0.0.53)] as Worker Node to this cluster.

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

[1]

On a new Node, Configure common settings to join in Cluster, refer to here.

[2]Confirm join command on Control Plane Node.
root@dlp:~# 
kubeadm token create --print-join-command

kubeadm join 10.0.0.25:6443 --token zuvobc.vz5ixl5ca789bfjd --discovery-token-ca-cert-hash sha256:16a2b904a92ce82b3096969e8f68c9050014f6f40ad742c1ff4050af1e504e65
[3]Run join command on a new Node.
root@node03:~# 
kubeadm join 10.0.0.25:6443 --token zuvobc.vz5ixl5ca789bfjd \
--discovery-token-ca-cert-hash sha256:16a2b904a92ce82b3096969e8f68c9050014f6f40ad742c1ff4050af1e504e65

[preflight] Running pre-flight checks
[preflight] Reading configuration from the "kubeadm-config" ConfigMap in namespace "kube-system"...
[preflight] Use 'kubeadm init phase upload-config --config your-config.yaml' to re-upload it.
[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 at http://127.0.0.1:10248/healthz. This can take up to 4m0s
[kubelet-check] The kubelet is healthy after 1.002319622s
[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]Verify settings on Manager Node. That's OK if the status of new Node turns to [STATUS = Ready].
root@ctrl:~# 
kubectl get nodes

NAME               STATUS   ROLES           AGE     VERSION
dlp-1.srv.world    Ready    control-plane   9m30s   v1.33.4
dlp.srv.world      Ready    control-plane   3h22m   v1.33.4
node01.srv.world   Ready    <none>          3h16m   v1.33.4
node02.srv.world   Ready    <none>          3h13m   v1.33.4
node03.srv.world   Ready    <none>          60s     v1.33.4

root@ctrl:~# 
kubectl get pods -A -o wide | grep node03

calico-system          calico-node-h6fj6                                      1/1     Running   0             94s     10.0.0.53         node03.srv.world   <none>           <none>
calico-system          calico-typha-6cd5496bcb-ptcgr                          1/1     Running   0             91s     10.0.0.53         node03.srv.world   <none>           <none>
calico-system          csi-node-driver-k4jvr                                  2/2     Running   0             94s     192.168.127.65    node03.srv.world   <none>           <none>
kube-system            kube-proxy-87n42                                       1/1     Running   0             94s     10.0.0.53         node03.srv.world   <none>           <none>

No comments:

Post a Comment