How to install Kubernetes on Ubuntu 20.04

1. Install Ubuntu 20.04

2. Run the following using sudo privileges:

disable swap or Kubernetes will NOT work

sudo swapoff -a
sudo rm /swap.img
sed "-i.bak" '/swap.img/d' /etc/fstab

3. Disable firewalling within Linux

systemctl disable --now ufw

4. Install Docker

sudo apt-get install docker.io

5. Enable Docker

sudo systemctl enable docker

6 . Check Docker status

sudo systemctl status docker

7. Add Kubernetes keys signing

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add

8. Add Kubernetes repository

sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

9. Install kubeadm, kubelet and kubectl

apt install -y kubeadm=1.22.0-00 kubelet=1.22.0-00 kubectl=1.22.0-00

10. Ensure Kubernetes cannot be auto-updated

sudo apt-mark hold kubeadm kubelet kubectl

11. Change cgroup driver for docker

sudo cat <<EOF | sudo tee /etc/docker/daemon.json
{ "exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts":
{ "max-size": "100m" },
"storage-driver": "overlay2"
}
EOF

12. Restart Docker

sudo systemctl restart docker

13. Check Docker is using recommended cgroup by running

sudo docker info |grep -i cgroup

the result should be

Cgroup Driver: systemd
Cgroup Version: 1

14. Initialize the Kubernetes master, control-plane

kubeadm init --apiserver-advertise-address=192.168.1.6 --pod-network-cidr=10.244.0.0/16

15. Copy kube config file to /root/.kube directory

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

16. Install Flannel overlay network

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

17. Untaint master node that is running Pods. This is not allowed unless the command below is run

kubectl taint nodes --all node-role.kubernetes.io/master-