Kubernetes : Kubeadm : Configure Worker Node
2018/04/07 |
Install Kubeadm to Configure Multi Nodes Kubernetes Cluster.
On this example, Configure
This example is based on the emvironment like follows.
For System requirements, each Node has uniq Hostname, MAC address, Product_uuid.
MAC address and Product_uuid are generally already uniq one if you installed OS on phisical machine or virtula machine with common procedure. You can see Product_uuid with the command [dmidecode -s system-uuid]. -----------+---------------------------+--------------------------+------------ | | | 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 | +----------------------+ +----------------------+ +----------------------+ |
Configure Worker Node on this section.
|
|
[1] |
[2] | Join in Kubernetes Cluster which is initialized on Master Node. The command for joining is just the one [kubeadm join ***] which was shown on the bottom of the results on initial setup of Cluster. |
[root@node01 ~]# kubeadm join 10.0.0.30:6443 --token ivcdtn.r9qt329oe49nb3b7 --discovery-token-ca-cert-hash sha256:2a2bdff5648e6f17bbc60889e8b47656795f2cb2ea959c8dc10b5dcb09d48be5 [preflight] Running pre-flight checks. [WARNING FileExisting-crictl]: crictl not found in system path Suggestion: go get github.com/kubernetes-incubator/cri-tools/cmd/crictl [preflight] Starting the kubelet service [discovery] Trying to connect to API Server "10.0.0.30:6443" [discovery] Created cluster-info discovery client, requesting info from "https://10.0.0.30:6443" [discovery] Requesting info from "https://10.0.0.30:6443" again to validate TLS against the pinned public key [discovery] Cluster info signature and contents are valid and TLS certificate validates against pinned roots, will use API Server "10.0.0.30:6443" [discovery] Successfully established connection with API Server "10.0.0.30:6443" This node has joined the cluster: * Certificate signing request was sent to master and a response was received. * The Kubelet was informed of the new secure connection details. Run 'kubectl get nodes' on the master to see this node join the cluster. # OK if shown [Successfully established connection ***] |
[3] | Verify Status on Master Node. It's Ok if all STATUS are Ready. |
[root@dlp ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION dlp.srv.world Ready master 1h v1.10.0 node01.srv.world Ready <none> 4m v1.10.0 node02.srv.world Ready <none> 2m v1.10.0 |
[4] | Verify working to deploy test Pods. |
[root@dlp ~]# kubectl run test-nginx --image=nginx --replicas=2 --port=80 deployment.apps "test-nginx" created [root@dlp ~]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE test-nginx-959dbd6b6-dkplf 1/1 Running 0 14m 10.244.1.2 node01.srv.world test-nginx-959dbd6b6-qhz55 1/1 Running 0 14m 10.244.2.2 node02.srv.world[root@dlp ~]# kubectl expose deployment test-nginx service "test-nginx" exposed [root@dlp ~]# kubectl describe service test-nginx Name: test-nginx Namespace: default Labels: run=test-nginx Annotations: <none> Selector: run=test-nginx Type: ClusterIP IP: 10.102.121.104 Port: <unset> 80/TCP TargetPort: 80/TCP Endpoints: 10.244.1.2:80,10.244.2.2:80 Session Affinity: None Events: <none>[root@dlp ~]# curl 10.102.121.104 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> ..... ..... <p><em>Thank you for using nginx.</em></p> </body> </html> |