Ubuntu 20.04
Sponsored Link

Kubernetes : Add Nodes2020/08/19

 
Add new Nodes to existing Kubernetes Cluster.
This example is based on the environment like follows and add a new Node [node03.srv.world] to it.
-----------+---------------------------+--------------------------+------------
           |                           |                          |
       eth0|10.0.0.30              eth0|10.0.0.51             eth0|10.0.0.52
+----------+-----------+   +-----------+----------+   +-----------+----------+
|   [ dlp.srv.world ]  |   | [ node01.srv.world ] |   | [ node02.srv.world ] |
|      Master Node     |   |      Worker Node     |   |      Worker Node     |
+----------------------+   +----------------------+   +----------------------+

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

kubeadm join 10.0.0.30:6443 --token mf7wmw.i6lzmcweb1k5fhan --discovery-token-ca-cert-hash sha256:a2fe3ff26b45163db734448366299b00ab111754ac5cd8f0b941ea4a0ad07e11
[3] Run join command on a new Node.
root@node03:~#
kubeadm join 10.0.0.30:6443 --token mf7wmw.i6lzmcweb1k5fhan \
--discovery-token-ca-cert-hash sha256:a2fe3ff26b45163db734448366299b00ab111754ac5cd8f0b941ea4a0ad07e11

W0819 13:43:45.078343    5986 join.go:346] [preflight] WARNING: JoinControlPane.controlPlane settings will be ignored when control-plane flag is not set.
[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 -oyaml'
[kubelet-start] Downloading configuration for the kubelet from the "kubelet-config-1.18" ConfigMap in the kube-system namespace
[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-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 Master Node. That's OK if the status of new Node turns to [STATUS = Ready].
root@dlp:~#
kubectl get nodes

NAME               STATUS   ROLES    AGE    VERSION
dlp.srv.world      Ready    master   135m   v1.18.8
node01.srv.world   Ready    <none>   132m   v1.18.8
node02.srv.world   Ready    <none>   131m   v1.18.8
node03.srv.world   Ready    <none>   3m1s   v1.18.8

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

NAMESPACE     NAME                                    READY   STATUS    RESTARTS   AGE    IP           NODE               NOMINATED NODE   READINESS GATES
kube-system   kube-flannel-ds-amd64-558tf             1/1     Running   0          16m    10.0.0.53    node03.srv.world   <none>           <none>
kube-system   kube-proxy-h79c2                        1/1     Running   0          16m    10.0.0.53    node03.srv.world   <none>           <none>
Matched Content