docker_advanced_k8s_intro

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
docker_advanced_k8s_intro [2020/04/21 09:39] andonovjdocker_advanced_k8s_intro [2020/05/30 15:17] (current) – [Overview] andonovj
Line 14: Line 14:
   * CNI - Install support for CNI network (Container network Interface / Spec or Model for Kubernetes Network)   * CNI - Install support for CNI network (Container network Interface / Spec or Model for Kubernetes Network)
  
-=====Installation=====+Furhtermore, Kubernetes have various objects, but let's examine the main ones: 
 + 
 +  * Pods 
 +  * Replication Controllers / Replication Sets (When Deployment) 
 +  * ClusterIP 
 +=====Package Installation=====
 To install the packages we have to: To install the packages we have to:
  
Line 92: Line 97:
  
 <Code:shell|Install packages> <Code:shell|Install packages>
-root@k8s-master:~# apt-get install docker.io kubeadm kubectl kubelet kubernetes-cni+root@k8s-master:~# apt-get install -y docker.io kubeadm kubectl kubelet kubernetes-cni
 Reading package lists... Done Reading package lists... Done
 Building dependency tree Building dependency tree
Line 108: Line 113:
 Get:1 http://archive.ubuntu.com/ubuntu xenial/universe amd64 pigz amd64 2.3.1-2 [61.1 kB] Get:1 http://archive.ubuntu.com/ubuntu xenial/universe amd64 pigz amd64 2.3.1-2 [61.1 kB]
 Get:2 http://archive.ubuntu.com/ubuntu xenial/main amd64 bridge-utils amd64 1.5-9ubuntu1 [28.6 kB] Get:2 http://archive.ubuntu.com/ubuntu xenial/main amd64 bridge-utils amd64 1.5-9ubuntu1 [28.6 kB]
-Get:3 http://archive.ubuntu.com/ubuntu xenial/universe amd64 cgroupfs-mount all 1.2 [4,970 B] +**************************************************************************************************************
-Get:4 http://archive.ubuntu.com/ubuntu xenial/main amd64 conntrack amd64 1:1.4.3-3 [27.3 kB] +
-Get:5 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 runc amd64 1.0.0~rc7+git20190403.029124da-0ubuntu1~16.04.4 [1,890 kB] +
-Get:8 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 containerd amd64 1.2.6-0ubuntu1~16.04.3 [19.7 MB] +
-Get:6 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 cri-tools amd64 1.13.0-00 [8,776 kB] +
-Get:12 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 docker.io amd64 18.09.7-0ubuntu1~16.04.5 [30.4 MB] +
-Get:7 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubernetes-cni amd64 0.7.5-00 [6,473 kB] +
-Get:9 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubelet amd64 1.18.2-00 [19.5 MB] +
-Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ebtables amd64 2.0.10.4-3.4ubuntu2.16.04.2 [79.9 kB] +
-Get:14 http://archive.ubuntu.com/ubuntu xenial/universe amd64 socat amd64 1.7.3.1-1 [321 kB] +
-Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-fan all 0.12.8~16.04.3 [35.1 kB] +
-Get:10 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubectl amd64 1.18.2-00 [8,825 kB] +
-Get:11 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubeadm amd64 1.18.2-00 [8,162 kB] +
-Fetched 104 MB in 6s (15.3 MB/s) +
-Preconfiguring packages ... +
-Selecting previously unselected package pigz. +
-(Reading database ... 58264 files and directories currently installed.) +
-Preparing to unpack .../pigz_2.3.1-2_amd64.deb ... +
-Unpacking pigz (2.3.1-2) ... +
-Selecting previously unselected package bridge-utils. +
-Preparing to unpack .../bridge-utils_1.5-9ubuntu1_amd64.deb ... +
-Unpacking bridge-utils (1.5-9ubuntu1) ... +
-Selecting previously unselected package cgroupfs-mount. +
-Preparing to unpack .../cgroupfs-mount_1.2_all.deb ... +
-Unpacking cgroupfs-mount (1.2) ... +
-Selecting previously unselected package conntrack. +
-Preparing to unpack .../conntrack_1%3a1.4.3-3_amd64.deb ... +
-Unpacking conntrack (1:1.4.3-3) ... +
-Selecting previously unselected package runc. +
-Preparing to unpack .../runc_1.0.0~rc7+git20190403.029124da-0ubuntu1~16.04.4_amd64.deb ... +
-Unpacking runc (1.0.0~rc7+git20190403.029124da-0ubuntu1~16.04.4) ... +
-Selecting previously unselected package containerd. +
-Preparing to unpack .../containerd_1.2.6-0ubuntu1~16.04.3_amd64.deb ... +
-Unpacking containerd (1.2.6-0ubuntu1~16.04.3) ... +
-Selecting previously unselected package cri-tools. +
-Preparing to unpack .../cri-tools_1.13.0-00_amd64.deb ... +
-Unpacking cri-tools (1.13.0-00) ... +
-Selecting previously unselected package docker.io. +
-Preparing to unpack .../docker.io_18.09.7-0ubuntu1~16.04.5_amd64.deb ... +
-Unpacking docker.io (18.09.7-0ubuntu1~16.04.5) ... +
-Selecting previously unselected package ebtables. +
-Preparing to unpack .../ebtables_2.0.10.4-3.4ubuntu2.16.04.2_amd64.deb ... +
-Unpacking ebtables (2.0.10.4-3.4ubuntu2.16.04.2) ... +
-Selecting previously unselected package kubernetes-cni. +
-Preparing to unpack .../kubernetes-cni_0.7.5-00_amd64.deb ... +
-Unpacking kubernetes-cni (0.7.5-00) ... +
-Selecting previously unselected package socat. +
-Preparing to unpack .../socat_1.7.3.1-1_amd64.deb ... +
-Unpacking socat (1.7.3.1-1) ... +
-Selecting previously unselected package kubelet. +
-Preparing to unpack .../kubelet_1.18.2-00_amd64.deb ... +
-Unpacking kubelet (1.18.2-00) ... +
-Selecting previously unselected package kubectl. +
-Preparing to unpack .../kubectl_1.18.2-00_amd64.deb ... +
-Unpacking kubectl (1.18.2-00) ... +
-Selecting previously unselected package kubeadm. +
-Preparing to unpack .../kubeadm_1.18.2-00_amd64.deb ... +
-Unpacking kubeadm (1.18.2-00) ... +
-Selecting previously unselected package ubuntu-fan. +
-Preparing to unpack .../ubuntu-fan_0.12.8~16.04.3_all.deb ... +
-Unpacking ubuntu-fan (0.12.8~16.04.3) ... +
-Processing triggers for man-db (2.7.5-1) ... +
-Processing triggers for ureadahead (0.100.0-19.1) ... +
-Processing triggers for systemd (229-4ubuntu21.27) ... +
-Setting up pigz (2.3.1-2) ... +
-Setting up bridge-utils (1.5-9ubuntu1) ... +
-Setting up cgroupfs-mount (1.2) ... +
-Setting up conntrack (1:1.4.3-3) ... +
-Setting up runc (1.0.0~rc7+git20190403.029124da-0ubuntu1~16.04.4) ... +
-Setting up containerd (1.2.6-0ubuntu1~16.04.3) ... +
-Setting up cri-tools (1.13.0-00) ... +
-Setting up docker.io (18.09.7-0ubuntu1~16.04.5) ... +
-Adding group `docker' (GID 116) ... +
-Done. +
-Setting up ebtables (2.0.10.4-3.4ubuntu2.16.04.2) ... +
-update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults +
-Setting up kubernetes-cni (0.7.5-00) ... +
-Setting up socat (1.7.3.1-1) ... +
-Setting up kubelet (1.18.2-00) ... +
-Setting up kubectl (1.18.2-00) ... +
-Setting up kubeadm (1.18.2-00) ... +
-Setting up ubuntu-fan (0.12.8~16.04.3) ... +
-Processing triggers for ureadahead (0.100.0-19.1) ... +
-Processing triggers for systemd (229-4ubuntu21.27) ...+
 </Code> </Code>
  
 Please execute that on all 3 machines Please execute that on all 3 machines
-====Initiliaze the cluster==== 
-To initialize the cluster, we have to take two factors into consideration: 
- 
-  - Which will be the advertise IP ? 
-  - Which will be the network which we will use for the pods. 
- 
-The first question is pretty easy. Just use the network which is assigned to your master. In our case, we have 1 master and 2 noides. 
-So we will assign the advertise IP of the master: 
- 
-  * master - 192.168.50.10 
-  * node1 - 192.168.50.11 
-  * node2 - 192.168.50.12 
- 
-The second question however, depends on the network which will be used for the pods. In our example I have used calico, because of the reasons listed below.Thus, our pod network by default is: 192.168.0.0/16. 
- 
-So let's see how our commands 
- 
-<Code:none|Initialize the cluster> 
-root@k8s-master:~# kubeadm init --ignore-preflight-errors=NumCPU --apiserver-advertise-address=192.168.50.10 --pod-network-cidr=192.168.0.0/16 
-W0421 09:20:50.597038   21388 configset.go:202] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io] 
-[init] Using Kubernetes version: v1.18.2 
-[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] Pulling images required for setting up a Kubernetes cluster 
-[preflight] This might take a minute or two, depending on the speed of your internet connection 
-[preflight] You can also perform this action in beforehand using 'kubeadm config images pull' 
-************************************************************************************************************************** 
-[kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key 
-[addons] Applied essential addon: CoreDNS 
-[addons] Applied essential addon: kube-proxy 
- 
-Your Kubernetes control-plane has initialized successfully! 
- 
-To start using your cluster, you need to run the following as a regular user: 
- 
-  mkdir -p $HOME/.kube 
-  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 
-  sudo chown $(id -u):$(id -g) $HOME/.kube/config 
- 
-You should now deploy a pod network to the cluster. 
-Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: 
-  https://kubernetes.io/docs/concepts/cluster-administration/addons/ 
- 
-Then you can join any number of worker nodes by running the following on each as root: 
- 
-kubeadm join 192.168.50.10:6443 --token k7cnjt.c0vkn3i6sc9qp2it \ 
-    --discovery-token-ca-cert-hash sha256:8c7874be67b9670c52a729b7a26bdefb4b55f5a49402624c0d262c0253732228 
-root@k8s-master:~# 
-</Code> 
- 
-After that, we have to perform a couple commands from the user, which will be responsible for the kubernetes and won't be root. (P.S. usage of root for applications is STRONGLY DISCOURAGED because of security stuff :) ) 
- 
-So just transfer it using the instructions above: 
- 
-<Code:none|Execute as normal User> 
-mkdir -p $HOME/.kube 
-sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 
-sudo chown $(id -u):$(id -g) $HOME/.kube/config 
-</Code> 
- 
-Once we have done that, we can check the cluster: 
- 
-<Code:shell|Check the cluster> 
-ubuntu@k8s-master:~$ kubectl get nodes 
-NAME         STATUS     ROLES    AGE   VERSION 
-k8s-master   NotReady   master   62s   v1.18.2 
-</Code> 
- 
- 
- 
-====Configure the network==== 
-Now, when you install  
-If you have higher version than 1.16, you cannot use weave network anymore. In our example I have used calico 3.8. 
  
  
  • docker_advanced_k8s_intro.1587461943.txt.gz
  • Last modified: 2020/04/21 09:39
  • by andonovj