CentOS Stream 10: Add Worker Node
Add Worker nodes to an existing Kubernetes cluster to expand processing capacity on CentOS Stream 10.
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 |
+----------------------+ +----------------------+
Step 1
On a new Node, Configure common settings to join in Cluster.
Step 2
Confirm join command on Control Plane Node.
[root@dlp ~]# kubeadm token create --print-join-command
kubeadm join 10.0.0.25:6443 --token 0ocigo.5qnqgk0l36pjuhgq --discovery-token-ca-cert-hash sha256:f7ed0f751e3370eb32367ee7b38ec48c5e48a997ca6935045b573c3b57df5b3e
Step 3
Run join command on a new Node.
[root@node03 ~]# kubeadm join 10.0.0.25:6443 --token 0ocigo.5qnqgk0l36pjuhgq \
--discovery-token-ca-cert-hash sha256:f7ed0f751e3370eb32367ee7b38ec48c5e48a997ca6935045b573c3b57df5b3e
[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 at http://127.0.0.1:10248/healthz. This can take up to 4m0s
[kubelet-check] The kubelet is healthy after 11.002305353s
[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.
Step 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 117m v1.31.9
dlp.srv.world Ready control-plane 3h3m v1.31.9
node01.srv.world Ready <none> 178m v1.31.9
node02.srv.world Ready <none> 177m v1.31.9
node03.srv.world Ready <none> 38s v1.31.9
[root@ctrl ~]# kubectl get pods -A -o wide | grep node03
kube-system calico-node-5xs5m 1/1 Running 0 83s 10.0.0.53 node03.srv.world <none> <none>
kube-system kube-proxy-bv5f2 1/1 Running 0 83s 10.0.0.53 node03.srv.world <none> <none>