CentOS 7
Sponsored Link

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>
 
Tweet