docker_advanced_k8s_join

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
docker_advanced_k8s_join [2020/04/21 10:49] andonovjdocker_advanced_k8s_join [2020/05/02 12:38] (current) andonovj
Line 5: Line 5:
 So let's get going. So let's get going.
  
-=====Joint to the cluster===== 
-Be sure that you installed the necessary packages from the introduction section. Once this is done we can add the node to the cluster as follow: 
- 
-<Code:shell|Add node> 
-root@node-1:~# kubeadm join 192.168.50.10:6443 --token k7cnjt.c0vkn3i6sc9qp2it --discovery-token-ca-cert-hash sha256:8c7874be67b9670c52a729b7a26bdefb4b55f5a49402624c0d262c0253732228 
-W0421 10:28:13.551137   21280 join.go:346] [preflight] WARNING: JoinControlPane.controlPlane settings will be ignored when control-plane flag is not set. 
-[preflight] Running pre-flight checks 
-        [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/ 
-[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. 
- 
-root@node-1:~# 
-</Code> 
- 
-As with the master node, it might take sometime until you see the node as Ready and all components running from the Control Panel Machine: 
- 
-<Code:shell|Check the newly added Node> 
-ubuntu@k8s-master:~/.kube$ kubectl get nodes 
-NAME         STATUS   ROLES    AGE   VERSION 
-k8s-master   Ready    master   67m   v1.18.2 
-node-1       Ready    <none>   82s   v1.18.2 
-ubuntu@k8s-master:~/.kube$ 
-ubuntu@k8s-master:~/.kube$ kubectl get pods --all-namespaces 
-NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE 
-kube-system   calico-kube-controllers-77c5fc8d7f-88lsl   1/    Running            65m 
-kube-system   calico-node-bqw8q                          1/1     Running            65m 
-kube-system   calico-node-wwfc5                          0/1     Running            75s 
-kube-system   coredns-66bff467f8-rgh8d                   1/    Running            67m 
-kube-system   coredns-66bff467f8-tql72                   1/    Running            67m 
-kube-system   etcd-k8s-master                            1/1     Running            67m 
-kube-system   kube-apiserver-k8s-master                  1/1     Running            67m 
-kube-system   kube-controller-manager-k8s-master         1/    Running            67m 
-kube-system   kube-proxy-hnmxb                           1/    Running            75s 
-kube-system   kube-proxy-jkmql                           1/    Running            67m 
-kube-system   kube-scheduler-k8s-master                  1/1     Running            67m 
-</Code> 
- 
-Please execute that step on all nodes. In the end you should have something like this: 
- 
-<Code:shell|Check the newly added Node> 
-ubuntu@k8s-master:~/.kube$ kubectl get nodes 
-NAME         STATUS   ROLES    AGE   VERSION 
-k8s-master   Ready    master   77m   v1.18.2 
-node-1       Ready    <none>   11m   v1.18.2 
-node-2       Ready    <none>   88s   v1.18.2 
-ubuntu@k8s-master:~/.kube$ kubectl get pods --all-namespaces 
-NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE 
-kube-system   calico-kube-controllers-77c5fc8d7f-88lsl   1/    Running            75m 
-kube-system   calico-node-bqw8q                          1/1     Running            75m 
-kube-system   calico-node-fl6ft                          1/1     Running            84s 
-kube-system   calico-node-wwfc5                          1/1     Running            11m 
-kube-system   coredns-66bff467f8-rgh8d                   1/    Running            77m 
-kube-system   coredns-66bff467f8-tql72                   1/    Running            77m 
-kube-system   etcd-k8s-master                            1/1     Running            77m 
-kube-system   kube-apiserver-k8s-master                  1/1     Running            77m 
-kube-system   kube-controller-manager-k8s-master         1/    Running            77m 
-kube-system   kube-proxy-hnmxb                           1/    Running            11m 
-kube-system   kube-proxy-jkmql                           1/    Running            77m 
-kube-system   kube-proxy-s4nrh                           1/    Running            84s 
-kube-system   kube-scheduler-k8s-master                  1/1     Running            77m 
-</Code> 
- 
-=====Assign role to a Node===== 
-You saw that our nodes have no roles. We have 1 master and that is that :) 
- 
-<Code:none|Nodes' roles> 
-ubuntu@k8s-master:~/.kube$ kubectl get nodes 
-NAME         STATUS   ROLES    AGE   VERSION 
-k8s-master   Ready    master   77m   v1.18.2 
-node-1       Ready    <none>   11m   v1.18.2 
-node-2       Ready    <none>   88s   v1.18.2 
-</Code 
- 
-So, how to assign roles to the node. Well, in Kubernetes, we assign labels. Labels are assigned as follows: 
- 
-<Code:none|Assign label> 
-kubectl label node <node name> node-role.kubernetes.io/<role name>=<key - (any name)> - To assign the label 
-kubectl label node <node name> node-role.kubernetes.io/<role name> - To remove the label 
-</Code> 
- 
-So let's assign worker to our node-1 and node-2 
- 
-<Code:shell|Assign Labels to Node-1 and Node-2> 
-ubuntu@k8s-master:~/.kube$ kubectl label node node-1 node-role.kubernetes.io/worker=worker 
-node/node-1 labeled 
-ubuntu@k8s-master:~/.kube$ kubectl label node node-2 node-role.kubernetes.io/worker=worker 
-node/node-2 labeled 
-ubuntu@k8s-master:~/.kube$ kubectl get nodes 
-NAME         STATUS   ROLES    AGE     VERSION 
-k8s-master   Ready    master   83m     v1.18.2 
-node-1       Ready    worker   17m     v1.18.2 
-node-2       Ready    worker   7m39s   v1.18.2 
-ubuntu@k8s-master:~/.kube$ 
-</Code> 
- 
-Alternatively we can remove a label from a node. So let's remove and add that label again on Node-2: 
- 
-<Code:shell|Remove and Add Label on Node-2> 
-ubuntu@k8s-master:~/.kube$ kubectl label node node-2 node-role.kubernetes.io/worker- 
-node/node-2 labeled 
-ubuntu@k8s-master:~/.kube$ kubectl get nodes 
-NAME         STATUS   ROLES    AGE   VERSION 
-k8s-master   Ready    master   86m   v1.18.2 
-node-1       Ready    worker   20m   v1.18.2 
-node-2       Ready    <none>   10m   v1.18.2 
-ubuntu@k8s-master:~/.kube$ kubectl label node node-2 node-role.kubernetes.io/worker=worker 
-node/node-2 labeled 
-ubuntu@k8s-master:~/.kube$ kubectl get nodes 
-NAME         STATUS   ROLES    AGE   VERSION 
-k8s-master   Ready    master   87m   v1.18.2 
-node-1       Ready    worker   20m   v1.18.2 
-node-2       Ready    worker   11m   v1.18.2 
-ubuntu@k8s-master:~/.kube$ 
-</Code> 
  
  • docker_advanced_k8s_join.1587466174.txt.gz
  • Last modified: 2020/04/21 10:49
  • by andonovj