Skip to main content

CentOS Stream 10: Add Worker Node

Add Worker nodes to an existing Kubernetes cluster to expand processing capacity on CentOS Stream 10.

May 24, 2026 8 min read
centoscentos-stream-10kubernetesk8scluster

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>