Tuesday, March 15, 2022

Upgrading K8s cluster from (1.20.0-00) to  (1.21.0-00) :


==> Login to the master node
==> verify what all kubernetes versiobs are available

sudo apt-cache madison kubeadm

anuj@master:~$ sudo apt-cache madison kubeadm
[sudo] password for anuj:
   kubeadm |  1.23.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.23.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.23.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.23.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.23.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.22.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.22.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.22.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.22.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.22.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.22.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.22.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.22.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.21.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.21.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.21.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.21.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.21.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.21.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.21.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.21.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.21.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.21.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.21.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.20.15-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.20.14-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.20.13-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.20.12-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.20.11-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.20.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.20.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.20.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.20.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.20.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.20.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.20.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.20.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.20.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.20.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.19.16-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.19.15-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.19.14-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.19.13-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.19.12-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.19.11-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.19.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.19.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.19.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.19.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.19.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.19.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.19.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.19.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.19.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.19.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.19.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.18.20-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.18.19-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.18.18-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.18.17-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.18.16-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.18.15-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.18.14-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.18.13-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.18.12-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.18.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.18.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.18.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.18.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.18.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.18.4-01 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.18.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.18.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.18.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.18.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.18.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.17.17-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.17.16-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.17.15-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.17.14-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.17.13-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.17.12-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.17.11-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.17.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.17.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.17.7-01 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.17.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.17.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.17.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.17.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.17.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.17.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.17.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.17.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.16.15-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.16.14-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.16.13-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.16.12-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.16.11-01 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.16.11-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.16.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.16.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.16.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.16.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.16.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.16.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.16.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.16.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.16.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.16.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.16.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.15.12-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.15.11-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.15.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.15.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.15.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.15.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.15.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.15.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.15.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.15.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.15.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.15.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.15.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.14.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.14.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.14.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.14.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.14.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.14.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.14.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.14.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.14.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.14.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.14.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.13.12-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.13.11-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.13.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.13.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.13.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.13.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.13.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.13.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.13.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.13.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.13.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.13.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.13.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.12.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.12.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.12.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.12.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.12.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.12.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.12.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.12.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.12.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.12.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.12.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.11.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.11.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.11.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.11.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.11.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.11.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.11.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.11.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.11.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.11.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.11.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.10.13-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.10.12-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.10.11-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm | 1.10.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.10.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.10.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.10.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.10.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.10.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.10.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.10.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.10.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.10.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.10.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.9.11-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.9.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.9.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.9.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.9.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.9.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.9.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.9.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.9.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.9.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.9.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.9.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.8.15-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.8.14-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.8.13-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.8.12-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.8.11-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.8.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.8.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.8.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.8.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.8.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.8.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.8.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.8.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.8.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.8.1-01 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.8.0-01 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.8.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.7.16-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.7.15-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.7.14-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.7.11-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.7.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.7.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.7.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.7.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.7.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.7.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.7.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.7.3-01 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.7.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.7.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.7.0-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.6.13-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.6.12-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.6.11-01 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |  1.6.10-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.6.9-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.6.8-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.6.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.6.6-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.6.5-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.6.4-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.6.3-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.6.2-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.6.1-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
   kubeadm |   1.5.7-00 | https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages

anuj@master:~$

anuj@master:~$  kubectl get node
NAME      STATUS   ROLES                  AGE    VERSION
master    Ready    control-plane,master   2d1h   v1.20.0
worker1   Ready    <none>                 2d     v1.20.0
worker2   Ready    <none>                 2d     v1.20.0


anuj@master:~$ sudo apt-mark unhold kubeadm
Canceled hold on kubeadm.
anuj@master:~$
anuj@master:~$ sudo apt-get update && apt-get install -y kubeadm=1.21.0-00
Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Hit:3 http://us.archive.ubuntu.com/ubuntu focal InRelease
Get:4 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Hit:1 https://packages.cloud.google.com/apt kubernetes-xenial InRelease
Get:5 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Get:6 http://security.ubuntu.com/ubuntu focal-security/main amd64 DEP-11 Metadata [40.7 kB]
Get:7 http://security.ubuntu.com/ubuntu focal-security/universe amd64 DEP-11 Metadata [66.4 kB]
Get:8 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 DEP-11 Metadata [277 kB]
Get:9 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 DEP-11 Metadata [2,464 B]
Get:10 http://us.archive.ubuntu.com/ubuntu focal-updates/universe amd64 DEP-11 Metadata [390 kB]
Get:11 http://us.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 DEP-11 Metadata [940 B]
Get:12 http://us.archive.ubuntu.com/ubuntu focal-backports/main amd64 DEP-11 Metadata [7,980 B]
Get:13 http://us.archive.ubuntu.com/ubuntu focal-backports/universe amd64 DEP-11 Metadata [30.8 kB]
Fetched 1,153 kB in 6s (191 kB/s)
Reading package lists... Done
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
anuj@master:~$ sudo su -
root@master:~#  apt-get update && apt-get install -y kubeadm=1.21.0-00
Hit:2 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:4 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:1 https://packages.cloud.google.com/apt kubernetes-xenial InRelease
Hit:5 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
  kubeadm
1 upgraded, 0 newly installed, 0 to remove and 86 not upgraded.
Need to get 8,544 kB of archives.
After this operation, 5,407 kB of additional disk space will be used.
Get:1 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubeadm amd64 1.21.0-00 [8,544 kB]
Fetched 8,544 kB in 4s (2,053 kB/s)
(Reading database ... 186804 files and directories currently installed.)
Preparing to unpack .../kubeadm_1.21.0-00_amd64.deb ...
Unpacking kubeadm (1.21.0-00) over (1.20.0-00) ...
Setting up kubeadm (1.21.0-00) ...

anuj@master:~$
anuj@master:~$ sudo apt-get update && sudo apt-get install -y kubeadm=1.21.0-00
Hit:2 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:4 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:1 https://packages.cloud.google.com/apt kubernetes-xenial InRelease
Hit:5 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
kubeadm is already the newest version (1.21.0-00).
0 upgraded, 0 newly installed, 0 to remove and 86 not upgraded.
anuj@master:~$

anuj@master:~$ sudo kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:30:03Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"linux/amd64"}
anuj@master:~$



anuj@master:~$ sudo kubeadm upgrade plan
[upgrade/config] Making sure the configuration is correct:
[upgrade/config] Reading configuration from the cluster...
[upgrade/config] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[preflight] Running pre-flight checks.
[upgrade] Running cluster health checks
[upgrade] Fetching available versions to upgrade to
[upgrade/versions] Cluster version: v1.20.15
[upgrade/versions] kubeadm version: v1.21.0
I0315 09:59:32.519547  404118 version.go:254] remote version is much newer: v1.23.4; falling back to: stable-1.21
[upgrade/versions] Target version: v1.21.10
[upgrade/versions] Latest version in the v1.20 series: v1.20.15

Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':
COMPONENT   CURRENT       TARGET
kubelet     3 x v1.20.0   v1.21.10

Upgrade to the latest stable version:

COMPONENT                 CURRENT    TARGET
kube-apiserver            v1.20.15   v1.21.10
kube-controller-manager   v1.20.15   v1.21.10
kube-scheduler            v1.20.15   v1.21.10
kube-proxy                v1.20.15   v1.21.10
CoreDNS                   1.7.0      v1.8.0
etcd                      3.4.13-0   3.4.13-0

You can now apply the upgrade by executing the following command:

        kubeadm upgrade apply v1.21.10

Note: Before you can perform this upgrade, you have to update kubeadm to v1.21.10.

_____________________________________________________________________


The table below shows the current state of component configs as understood by this version of kubeadm.
Configs that have a "yes" mark in the "MANUAL UPGRADE REQUIRED" column require manual config upgrade or
resetting to kubeadm defaults before a successful upgrade can be performed. The version to manually
upgrade to is denoted in the "PREFERRED VERSION" column.

API GROUP                 CURRENT VERSION   PREFERRED VERSION   MANUAL UPGRADE REQUIRED
kubeproxy.config.k8s.io   v1alpha1          v1alpha1            no
kubelet.config.k8s.io     v1beta1           v1beta1             no
_____________________________________________________________________

anuj@master:~$ kubectl get node
NAME      STATUS   ROLES                  AGE    VERSION
master    Ready    control-plane,master   2d1h   v1.20.0
worker1   Ready    <none>                 2d     v1.20.0
worker2   Ready    <none>                 47h    v1.20.0
anuj@master:~$
anuj@master:~$


anuj@master:~$ sudo  kubeadm upgrade apply v1.21.0
[upgrade/config] Making sure the configuration is correct:
[upgrade/config] Reading configuration from the cluster...
[upgrade/config] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[preflight] Running pre-flight checks.
[upgrade] Running cluster health checks
[upgrade/version] You have chosen to change the cluster version to "v1.21.0"
[upgrade/versions] Cluster version: v1.20.15
[upgrade/versions] kubeadm version: v1.21.0
[upgrade/confirm] Are you sure you want to proceed with the upgrade? [y/N]: y
[upgrade/prepull] Pulling images required for setting up a Kubernetes cluster
[upgrade/prepull] This might take a minute or two, depending on the speed of your internet connection
[upgrade/prepull] You can also perform this action in beforehand using 'kubeadm config images pull'
[upgrade/apply] Upgrading your Static Pod-hosted control plane to version "v1.21.0"...
Static pod: kube-apiserver-master hash: 805d76fe9b8bc19ed79f771489348795
Static pod: kube-controller-manager-master hash: 7b9d15547f45a10df64afe9651db18c2
Static pod: kube-scheduler-master hash: e8f872f9a07112e96e684366d7248982
[upgrade/etcd] Upgrading to TLS for etcd
Static pod: etcd-master hash: b912f9921eea05f92a2fb4d5d7c7856d
[upgrade/staticpods] Preparing for "etcd" upgrade
[upgrade/staticpods] Current and new manifests of etcd are equal, skipping upgrade
[upgrade/etcd] Waiting for etcd to become available
[upgrade/staticpods] Writing new Static Pod manifests to "/etc/kubernetes/tmp/kubeadm-upgraded-manifests436744940"
[upgrade/staticpods] Preparing for "kube-apiserver" upgrade
[upgrade/staticpods] Renewing apiserver certificate
[upgrade/staticpods] Renewing apiserver-kubelet-client certificate
[upgrade/staticpods] Renewing front-proxy-client certificate
[upgrade/staticpods] Renewing apiserver-etcd-client certificate
[upgrade/staticpods] Moved new manifest to "/etc/kubernetes/manifests/kube-apiserver.yaml" and backed up old manifest to "/etc/kubernetes/tmp/kubeadm-backup-manifests-2022-03-15-10-04-04/kube-apiserver.yaml"
[upgrade/staticpods] Waiting for the kubelet to restart the component
[upgrade/staticpods] This might take a minute or longer depending on the component/version gap (timeout 5m0s)
Static pod: kube-apiserver-master hash: 805d76fe9b8bc19ed79f771489348795
Static pod: kube-apiserver-master hash: 805d76fe9b8bc19ed79f771489348795
Static pod: kube-apiserver-master hash: 805d76fe9b8bc19ed79f771489348795
Static pod: kube-apiserver-master hash: 805d76fe9b8bc19ed79f771489348795
Static pod: kube-apiserver-master hash: 805d76fe9b8bc19ed79f771489348795
Static pod: kube-apiserver-master hash: a6ab49122f8e49f8e42e673e96ed0c2f
[apiclient] Found 1 Pods for label selector component=kube-apiserver
[upgrade/staticpods] Component "kube-apiserver" upgraded successfully!
[upgrade/staticpods] Preparing for "kube-controller-manager" upgrade
[upgrade/staticpods] Renewing controller-manager.conf certificate
[upgrade/staticpods] Moved new manifest to "/etc/kubernetes/manifests/kube-controller-manager.yaml" and backed up old manifest to "/etc/kubernetes/tmp/kubeadm-backup-manifests-2022-03-15-10-04-04/kube-controller-manager.yaml"
[upgrade/staticpods] Waiting for the kubelet to restart the component
[upgrade/staticpods] This might take a minute or longer depending on the component/version gap (timeout 5m0s)
Static pod: kube-controller-manager-master hash: 7b9d15547f45a10df64afe9651db18c2
Static pod: kube-controller-manager-master hash: db5c047f8a5cf9764077734f5f2fe99a
[apiclient] Found 1 Pods for label selector component=kube-controller-manager
[upgrade/staticpods] Component "kube-controller-manager" upgraded successfully!
[upgrade/staticpods] Preparing for "kube-scheduler" upgrade
[upgrade/staticpods] Renewing scheduler.conf certificate
[upgrade/staticpods] Moved new manifest to "/etc/kubernetes/manifests/kube-scheduler.yaml" and backed up old manifest to "/etc/kubernetes/tmp/kubeadm-backup-manifests-2022-03-15-10-04-04/kube-scheduler.yaml"
[upgrade/staticpods] Waiting for the kubelet to restart the component
[upgrade/staticpods] This might take a minute or longer depending on the component/version gap (timeout 5m0s)
Static pod: kube-scheduler-master hash: e8f872f9a07112e96e684366d7248982
Static pod: kube-scheduler-master hash: 98c4dbc724c870519b6f3d945a54b5d4
[apiclient] Found 1 Pods for label selector component=kube-scheduler
[upgrade/staticpods] Component "kube-scheduler" upgraded successfully!
[upgrade/postupgrade] Applying label node-role.kubernetes.io/control-plane='' to Nodes with label node-role.kubernetes.io/master='' (deprecated)
[upgrade/postupgrade] Applying label node.kubernetes.io/exclude-from-external-load-balancers='' to control plane Nodes
[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace
[kubelet] Creating a ConfigMap "kubelet-config-1.21" in namespace kube-system with the configuration for the kubelets in the cluster
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to get nodes
[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials
[bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token
[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
[addons] Applied essential addon: CoreDNS
[addons] Applied essential addon: kube-proxy

[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.21.0". Enjoy!

[upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so.
anuj@master:~$
anuj@master:~$


anuj@master:~$ Check the node status
^Canuj@master:~$
anuj@master:~$
anuj@master:~$
anuj@master:~$  kubectl get node
NAME      STATUS   ROLES                  AGE    VERSION
master    Ready    control-plane,master   2d1h   v1.20.0
worker1   Ready    <none>                 2d     v1.20.0
worker2   Ready    <none>                 2d     v1.20.0
anuj@master:~$
anuj@master:~$ kubectl get pod
No resources found in default namespace.
anuj@master:~$
anuj@master:~$ kubectl get pod -n kube-system -o wide
NAME                             READY   STATUS        RESTARTS   AGE     IP                NODE      NOMINATED NODE   READINESS GATES
coredns-558bd4d5db-q9nl9         1/1     Running       0          2m17s   10.44.0.1         worker1   <none>           <none>
coredns-558bd4d5db-zq9kb         1/1     Running       0          2m16s   10.36.0.1         worker2   <none>           <none>
etcd-master                      1/1     Running       0          2d1h    192.168.159.135   master    <none>           <none>
kube-apiserver-master            1/1     Running       0          4m      192.168.159.135   master    <none>           <none>
kube-controller-manager-master   1/1     Running       0          3m4s    192.168.159.135   master    <none>           <none>
kube-proxy-6gpq2                 1/1     Running       0          34s     192.168.159.136   worker1   <none>           <none>
kube-proxy-726f5                 1/1     Terminating   0          2d      192.168.159.137   worker2   <none>           <none>
kube-proxy-zp4jq                 1/1     Running       0          88s     192.168.159.135   master    <none>           <none>
kube-scheduler-master            1/1     Running       0          2m55s   192.168.159.135   master    <none>           <none>
weave-net-grxjs                  2/2     Running       1          2d      192.168.159.137   worker2   <none>           <none>
weave-net-gsfqw                  2/2     Running       1          2d      192.168.159.135   master    <none>           <none>
weave-net-rsxmg                  2/2     Running       1          2d      192.168.159.136   worker1   <none>           <none>
anuj@master:~$ kubectl get pod -n kube-system -o wide
NAME                             READY   STATUS        RESTARTS   AGE     IP                NODE      NOMINATED NODE   READINESS GATES
coredns-558bd4d5db-q9nl9         1/1     Running       0          2m23s   10.44.0.1         worker1   <none>           <none>
coredns-558bd4d5db-zq9kb         1/1     Running       0          2m22s   10.36.0.1         worker2   <none>           <none>
etcd-master                      1/1     Running       0          2d1h    192.168.159.135   master    <none>           <none>
kube-apiserver-master            1/1     Running       0          4m6s    192.168.159.135   master    <none>           <none>
kube-controller-manager-master   1/1     Running       0          3m10s   192.168.159.135   master    <none>           <none>
kube-proxy-6gpq2                 1/1     Running       0          40s     192.168.159.136   worker1   <none>           <none>
kube-proxy-726f5                 0/1     Terminating   0          2d      192.168.159.137   worker2   <none>           <none>
kube-proxy-zp4jq                 1/1     Running       0          94s     192.168.159.135   master    <none>           <none>
kube-scheduler-master            1/1     Running       0          3m1s    192.168.159.135   master    <none>           <none>
weave-net-grxjs                  2/2     Running       1          2d      192.168.159.137   worker2   <none>           <none>
weave-net-gsfqw                  2/2     Running       1          2d      192.168.159.135   master    <none>           <none>
weave-net-rsxmg                  2/2     Running       1          2d      192.168.159.136   worker1   <none>           <none>
anuj@master:~$
anuj@master:~$ kubectl get pod -n kube-system -o wide
NAME                             READY   STATUS              RESTARTS   AGE     IP                NODE      NOMINATED NODE   READINESS GATES
coredns-558bd4d5db-q9nl9         1/1     Running             0          3m7s    10.44.0.1         worker1   <none>           <none>
coredns-558bd4d5db-zq9kb         1/1     Running             0          3m6s    10.36.0.1         worker2   <none>           <none>
etcd-master                      1/1     Running             0          2d1h    192.168.159.135   master    <none>           <none>
kube-apiserver-master            1/1     Running             0          4m50s   192.168.159.135   master    <none>           <none>
kube-controller-manager-master   1/1     Running             0          3m54s   192.168.159.135   master    <none>           <none>
kube-proxy-6gpq2                 1/1     Running             0          84s     192.168.159.136   worker1   <none>           <none>
kube-proxy-x9r7z                 0/1     ContainerCreating   0          10s     192.168.159.137   worker2   <none>           <none>
kube-proxy-zp4jq                 1/1     Running             0          2m18s   192.168.159.135   master    <none>           <none>
kube-scheduler-master            1/1     Running             0          3m45s   192.168.159.135   master    <none>           <none>
weave-net-grxjs                  2/2     Running             1          2d      192.168.159.137   worker2   <none>           <none>
weave-net-gsfqw                  2/2     Running             1          2d      192.168.159.135   master    <none>           <none>
weave-net-rsxmg                  2/2     Running             1          2d      192.168.159.136   worker1   <none>           <none>
anuj@master:~$
anuj@master:~$ kubectl get pod -n kube-system -o wide
NAME                             READY   STATUS    RESTARTS   AGE     IP                NODE      NOMINATED NODE   READINESS GATES
coredns-558bd4d5db-q9nl9         1/1     Running   0          3m53s   10.44.0.1         worker1   <none>           <none>
coredns-558bd4d5db-zq9kb         1/1     Running   0          3m52s   10.36.0.1         worker2   <none>           <none>
etcd-master                      1/1     Running   0          2d1h    192.168.159.135   master    <none>           <none>
kube-apiserver-master            1/1     Running   0          5m36s   192.168.159.135   master    <none>           <none>
kube-controller-manager-master   1/1     Running   0          4m40s   192.168.159.135   master    <none>           <none>
kube-proxy-6gpq2                 1/1     Running   0          2m10s   192.168.159.136   worker1   <none>           <none>
kube-proxy-x9r7z                 1/1     Running   0          56s     192.168.159.137   worker2   <none>           <none>
kube-proxy-zp4jq                 1/1     Running   0          3m4s    192.168.159.135   master    <none>           <none>
kube-scheduler-master            1/1     Running   0          4m31s   192.168.159.135   master    <none>           <none>
weave-net-grxjs                  2/2     Running   1          2d      192.168.159.137   worker2   <none>           <none>
weave-net-gsfqw                  2/2     Running   1          2d1h    192.168.159.135   master    <none>           <none>
weave-net-rsxmg                  2/2     Running   1          2d      192.168.159.136   worker1   <none>           <none>
anuj@master:~$
anuj@master:~$
anuj@master:~$ kubectl drain k8master --ignore-daemonsets
Error from server (NotFound): nodes "k8master" not found
anuj@master:~$
anuj@master:~$ kubectl drain master --ignore-daemonsets
node/master cordoned
WARNING: ignoring DaemonSet-managed Pods: kube-system/kube-proxy-zp4jq, kube-system/weave-net-gsfqw
node/master drained
anuj@master:~$
anuj@master:~$ kubectl get pod -n kube-system -o wide
NAME                             READY   STATUS    RESTARTS   AGE     IP                NODE      NOMINATED NODE   READINESS GATES
coredns-558bd4d5db-q9nl9         1/1     Running   0          4m20s   10.44.0.1         worker1   <none>           <none>
coredns-558bd4d5db-zq9kb         1/1     Running   0          4m19s   10.36.0.1         worker2   <none>           <none>
etcd-master                      1/1     Running   0          2d1h    192.168.159.135   master    <none>           <none>
kube-apiserver-master            1/1     Running   0          6m3s    192.168.159.135   master    <none>           <none>
kube-controller-manager-master   1/1     Running   0          5m7s    192.168.159.135   master    <none>           <none>
kube-proxy-6gpq2                 1/1     Running   0          2m37s   192.168.159.136   worker1   <none>           <none>
kube-proxy-x9r7z                 1/1     Running   0          83s     192.168.159.137   worker2   <none>           <none>
kube-proxy-zp4jq                 1/1     Running   0          3m31s   192.168.159.135   master    <none>           <none>
kube-scheduler-master            1/1     Running   0          4m58s   192.168.159.135   master    <none>           <none>
weave-net-grxjs                  2/2     Running   1          2d      192.168.159.137   worker2   <none>           <none>
weave-net-gsfqw                  2/2     Running   1          2d1h    192.168.159.135   master    <none>           <none>
weave-net-rsxmg                  2/2     Running   1          2d      192.168.159.136   worker1   <none>           <none>
anuj@master:~$
anuj@master:~$ kubectl get pod -n kube-system -o wide
NAME                             READY   STATUS    RESTARTS   AGE     IP                NODE      NOMINATED NODE   READINESS GATES
coredns-558bd4d5db-q9nl9         1/1     Running   0          4m25s   10.44.0.1         worker1   <none>           <none>
coredns-558bd4d5db-zq9kb         1/1     Running   0          4m24s   10.36.0.1         worker2   <none>           <none>
etcd-master                      1/1     Running   0          2d1h    192.168.159.135   master    <none>           <none>
kube-apiserver-master            1/1     Running   0          6m8s    192.168.159.135   master    <none>           <none>
kube-controller-manager-master   1/1     Running   0          5m12s   192.168.159.135   master    <none>           <none>
kube-proxy-6gpq2                 1/1     Running   0          2m42s   192.168.159.136   worker1   <none>           <none>
kube-proxy-x9r7z                 1/1     Running   0          88s     192.168.159.137   worker2   <none>           <none>
kube-proxy-zp4jq                 1/1     Running   0          3m36s   192.168.159.135   master    <none>           <none>
kube-scheduler-master            1/1     Running   0          5m3s    192.168.159.135   master    <none>           <none>
weave-net-grxjs                  2/2     Running   1          2d      192.168.159.137   worker2   <none>           <none>
weave-net-gsfqw                  2/2     Running   1          2d1h    192.168.159.135   master    <none>           <none>
weave-net-rsxmg                  2/2     Running   1          2d      192.168.159.136   worker1   <none>           <none>
anuj@master:~$
anuj@master:~$
anuj@master:~$  kubectl get node
NAME      STATUS                     ROLES                  AGE    VERSION
master    Ready,SchedulingDisabled   control-plane,master   2d1h   v1.20.0
worker1   Ready                      <none>                 2d     v1.20.0
worker2   Ready                      <none>                 2d     v1.20.0
anuj@master:~$
anuj@master:~$
anuj@master:~$ sudo apt-mark unhold kubelet kubect
Canceled hold on kubelet.
E: Unable to locate package kubect
anuj@master:~$
anuj@master:~$ sudo apt-mark unhold kubelet kubectl
kubelet was already not hold.
Canceled hold on kubectl.
anuj@master:~$
anuj@master:~$ sudo apt-get update && sudo apt-get install -y kubelet=1.21.0-00 kubectl=1.21.0-00
Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:3 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 https://packages.cloud.google.com/apt kubernetes-xenial InRelease
Hit:4 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
  kubectl kubelet
2 upgraded, 0 newly installed, 0 to remove and 85 not upgraded.
Need to get 27.8 MB of archives.
After this operation, 10.3 MB of additional disk space will be used.
Get:1 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubectl amd64 1.21.0-00 [8,972 kB]
Get:2 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubelet amd64 1.21.0-00 [18.8 MB]
Fetched 27.8 MB in 10s (2,856 kB/s)
(Reading database ... 186804 files and directories currently installed.)
Preparing to unpack .../kubectl_1.21.0-00_amd64.deb ...
Unpacking kubectl (1.21.0-00) over (1.20.0-00) ...
Preparing to unpack .../kubelet_1.21.0-00_amd64.deb ...
Unpacking kubelet (1.21.0-00) over (1.20.0-00) ...
Setting up kubectl (1.21.0-00) ...
Setting up kubelet (1.21.0-00) ...
anuj@master:~$
anuj@master:~$ sudo apt-mark hold kubelet kubectl
kubelet set on hold.
kubectl set on hold.
anuj@master:~$
anuj@master:~$ kubectl get node
NAME      STATUS                     ROLES                  AGE    VERSION
master    Ready,SchedulingDisabled   control-plane,master   2d1h   v1.21.0
worker1   Ready                      <none>                 2d1h   v1.20.0
worker2   Ready                      <none>                 2d     v1.20.0
anuj@master:~$ sudo systemctl daemon-reload
anuj@master:~$
anuj@master:~$ kubectl get node
NAME      STATUS                     ROLES                  AGE    VERSION
master    Ready,SchedulingDisabled   control-plane,master   2d1h   v1.21.0
worker1   Ready                      <none>                 2d1h   v1.20.0
worker2   Ready                      <none>                 2d     v1.20.0
anuj@master:~$
anuj@master:~$ sudo systemctl restart kubelet
anuj@master:~$
anuj@master:~$ kubectl get node
NAME      STATUS                     ROLES                  AGE    VERSION
master    Ready,SchedulingDisabled   control-plane,master   2d1h   v1.21.0
worker1   Ready                      <none>                 2d1h   v1.20.0
worker2   Ready                      <none>                 2d     v1.20.0
anuj@master:~$
anuj@master:~$ sudo systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
     Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/kubelet.service.d
             └─10-kubeadm.conf
     Active: active (running) since Tue 2022-03-15 10:17:14 PDT; 42s ago
       Docs: https://kubernetes.io/docs/home/
   Main PID: 414779 (kubelet)
      Tasks: 14 (limit: 3415)
     Memory: 35.3M
     CGroup: /system.slice/kubelet.service
             └─414779 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kuberne>

Mar 15 10:17:23 master kubelet[414779]: I0315 10:17:23.638175  414779 reconciler.go:224] "operationExecutor.VerifyControllerAt>
Mar 15 10:17:23 master kubelet[414779]: I0315 10:17:23.638263  414779 reconciler.go:224] "operationExecutor.VerifyControllerAt>
Mar 15 10:17:23 master kubelet[414779]: I0315 10:17:23.638346  414779 reconciler.go:224] "operationExecutor.VerifyControllerAt>
Mar 15 10:17:23 master kubelet[414779]: I0315 10:17:23.638449  414779 reconciler.go:224] "operationExecutor.VerifyControllerAt>
Mar 15 10:17:23 master kubelet[414779]: I0315 10:17:23.638541  414779 reconciler.go:224] "operationExecutor.VerifyControllerAt>
Mar 15 10:17:23 master kubelet[414779]: I0315 10:17:23.638627  414779 reconciler.go:224] "operationExecutor.VerifyControllerAt>
Mar 15 10:17:23 master kubelet[414779]: I0315 10:17:23.638715  414779 reconciler.go:224] "operationExecutor.VerifyControllerAt>
Mar 15 10:17:23 master kubelet[414779]: I0315 10:17:23.638804  414779 reconciler.go:224] "operationExecutor.VerifyControllerAt>
Mar 15 10:17:23 master kubelet[414779]: I0315 10:17:23.638829  414779 reconciler.go:157] "Reconciler: start to sync state"
Mar 15 10:17:24 master kubelet[414779]: I0315 10:17:24.100158  414779 prober_manager.go:255] "Failed to trigger a manual run" >

anuj@master:~$ date
Tue 15 Mar 2022 10:18:06 AM PDT
anuj@master:~$
anuj@master:~$ kubectl get node
NAME      STATUS                     ROLES                  AGE    VERSION
master    Ready,SchedulingDisabled   control-plane,master   2d1h   v1.21.0
worker1   Ready                      <none>                 2d1h   v1.20.0
worker2   Ready                      <none>                 2d     v1.20.0
anuj@master:~$
anuj@master:~$  kubectl uncordon master
node/master uncordoned
anuj@master:~$
anuj@master:~$ kubectl get node
NAME      STATUS   ROLES                  AGE    VERSION
master    Ready    control-plane,master   2d1h   v1.21.0
worker1   Ready    <none>                 2d1h   v1.20.0
worker2   Ready    <none>                 2d     v1.20.0
anuj@master:~$
anuj@master:~$ kubectl get pod -n kube-system
NAME                             READY   STATUS    RESTARTS   AGE
coredns-558bd4d5db-q9nl9         1/1     Running   0          13m
coredns-558bd4d5db-zq9kb         1/1     Running   0          13m
etcd-master                      1/1     Running   0          2m59s
kube-apiserver-master            1/1     Running   0          3m59s
kube-controller-manager-master   1/1     Running   0          2m42s
kube-proxy-6gpq2                 1/1     Running   0          11m
kube-proxy-x9r7z                 1/1     Running   0          10m
kube-proxy-zp4jq                 1/1     Running   0          12m
kube-scheduler-master            1/1     Running   0          3m12s
weave-net-grxjs                  2/2     Running   1          2d
weave-net-gsfqw                  2/2     Running   1          2d1h
weave-net-rsxmg                  2/2     Running   1          2d1h
anuj@master:~$
anuj@master:~$


================================= following steps to upgrade Worker node ===================


anuj@worker2:~$ sudo apt-mark unhold kubeadm && \
> sudo apt-get update && sudo apt-get install -y kubeadm=1.21.0-00 && \
> sudo apt-mark hold kubeadm
Canceled hold on kubeadm.
Hit:2 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:4 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:1 https://packages.cloud.google.com/apt kubernetes-xenial InRelease
Hit:5 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
kubeadm is already the newest version (1.21.0-00).
0 upgraded, 0 newly installed, 0 to remove and 86 not upgraded.
kubeadm set on hold.
anuj@worker2:~$
anuj@worker2:~$
anuj@worker2:~$ sudo kubeadm upgrade node
[upgrade] Reading configuration from the cluster...
[upgrade] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[preflight] Running pre-flight checks
[preflight] Skipping prepull. Not a control plane node.
[upgrade] Skipping phase. Not a control plane node.
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[upgrade] The configuration for this node was successfully updated!
[upgrade] Now you should go ahead and upgrade the kubelet package using your package manager.
anuj@worker2:~$
anuj@worker2:~$
anuj@worker2:~$
anuj@worker2:~$
anuj@worker2:~$
anuj@worker2:~$

=========> Now Login to master node =========

anuj@master:~$ kubectl drain worker2 --ignore-daemonsets
node/worker2 cordoned
WARNING: ignoring DaemonSet-managed Pods: kube-system/kube-proxy-x9r7z, kube-system/weave-net-grxjs
evicting pod kube-system/coredns-558bd4d5db-zq9kb
evicting pod kube-system/coredns-558bd4d5db-pqp52
pod/coredns-558bd4d5db-zq9kb evicted
pod/coredns-558bd4d5db-pqp52 evicted
node/worker2 evicted
anuj@master:~$
anuj@master:~$
anuj@master:~$ kubectl get node
NAME      STATUS                     ROLES                  AGE    VERSION
master    Ready                      control-plane,master   2d2h   v1.21.0
worker1   Ready                      <none>                 2d1h   v1.21.0
worker2   Ready,SchedulingDisabled   <none>                 2d     v1.21.0

anuj@master:~$ kubectl get pod -n kube-system -o wide
NAME                             READY   STATUS              RESTARTS   AGE    IP                NODE      NOMINATED NODE   READINESS GATES
coredns-558bd4d5db-pqp52         1/1     Terminating         0          14m    10.36.0.2         worker2   <none>           <none>
coredns-558bd4d5db-rb2bv         0/1     ContainerCreating   0          3s     <none>            worker1   <none>           <none>
coredns-558bd4d5db-xrkj5         0/1     ContainerCreating   0          3s     <none>            worker1   <none>           <none>
coredns-558bd4d5db-zq9kb         1/1     Terminating         0          35m    10.36.0.1         worker2   <none>           <none>
etcd-master                      1/1     Running             0          25m    192.168.159.135   master    <none>           <none>
kube-apiserver-master            1/1     Running             0          26m    192.168.159.135   master    <none>           <none>
kube-controller-manager-master   1/1     Running             0          25m    192.168.159.135   master    <none>           <none>
kube-proxy-6gpq2                 1/1     Running             0          33m    192.168.159.136   worker1   <none>           <none>
kube-proxy-x9r7z                 1/1     Running             0          32m    192.168.159.137   worker2   <none>           <none>
kube-proxy-zp4jq                 1/1     Running             0          34m    192.168.159.135   master    <none>           <none>
kube-scheduler-master            1/1     Running             0          25m    192.168.159.135   master    <none>           <none>
weave-net-grxjs                  2/2     Running             1          2d     192.168.159.137   worker2   <none>           <none>
weave-net-gsfqw                  2/2     Running             1          2d1h   192.168.159.135   master    <none>           <none>
weave-net-rsxmg                  2/2     Running             1          2d1h   192.168.159.136   worker1   <none>           <none>
anuj@master:~$

anuj@master:~$ kubectl get pod -n kube-system
NAME                             READY   STATUS              RESTARTS   AGE
coredns-558bd4d5db-pqp52         0/1     Terminating         0          14m
coredns-558bd4d5db-rb2bv         0/1     ContainerCreating   0          9s
coredns-558bd4d5db-xrkj5         0/1     ContainerCreating   0          9s
coredns-558bd4d5db-zq9kb         0/1     Terminating         0          35m
etcd-master                      1/1     Running             0          25m
kube-apiserver-master            1/1     Running             0          26m
kube-controller-manager-master   1/1     Running             0          25m
kube-proxy-6gpq2                 1/1     Running             0          33m
kube-proxy-x9r7z                 1/1     Running             0          32m
kube-proxy-zp4jq                 1/1     Running             0          34m
kube-scheduler-master            1/1     Running             0          25m
weave-net-grxjs                  2/2     Running             1          2d
weave-net-gsfqw                  2/2     Running             1          2d1h
weave-net-rsxmg                  2/2     Running             1          2d1h
anuj@master:~$


===========> login to the worker and Install the kubelet and kubectl version ===========

anuj@worker2:~$ sudo apt-mark unhold kubelet kubectl && \
> sudo apt-get update && sudo apt-get install -y kubelet=1.21.0-00 kubectl=1.21.0-00 && \
> sudo apt-mark hold kubelet kubectl
kubelet was already not hold.
kubectl was already not hold.
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Hit:3 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:4 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:2 https://packages.cloud.google.com/apt kubernetes-xenial InRelease
Hit:5 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease
Get:6 http://security.ubuntu.com/ubuntu focal-security/main i386 Packages [402 kB]
Get:7 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [1,317 kB]
Get:8 http://security.ubuntu.com/ubuntu focal-security/universe i386 Packages [546 kB]
Get:9 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [692 kB]
Fetched 3,071 kB in 10s (313 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
  kubectl kubelet
2 upgraded, 0 newly installed, 0 to remove and 86 not upgraded.
Need to get 27.8 MB of archives.
After this operation, 10.3 MB of additional disk space will be used.
Get:1 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubectl amd64 1.21.0-00 [8,972 kB]
Get:2 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubelet amd64 1.21.0-00 [18.8 MB]
Fetched 27.8 MB in 6s (4,651 kB/s)
(Reading database ... 186804 files and directories currently installed.)
Preparing to unpack .../kubectl_1.21.0-00_amd64.deb ...
Unpacking kubectl (1.21.0-00) over (1.20.0-00) ...
Preparing to unpack .../kubelet_1.21.0-00_amd64.deb ...
Unpacking kubelet (1.21.0-00) over (1.20.0-00) ...
Setting up kubectl (1.21.0-00) ...
Setting up kubelet (1.21.0-00) ...
kubelet set on hold.
kubectl set on hold.
anuj@worker2:~$
=========================> restart the kubectl =============================
anuj@worker2:~$
anuj@worker2:~$ sudo systemctl daemon-reload; sudo systemctl restart kubelet
anuj@worker2:~$
anuj@worker2:~$


===================> Login to master node and uncordon the worker2 =================

anuj@master:~$ kubectl get node
NAME      STATUS                     ROLES                  AGE    VERSION
master    Ready                      control-plane,master   2d2h   v1.21.0
worker1   Ready                      <none>                 2d1h   v1.21.0
worker2   Ready,SchedulingDisabled   <none>                 2d     v1.21.0


anuj@master:~$ kubectl uncordon worker2
node/worker2 uncordoned
anuj@master:~$
anuj@master:~$ kubectl get pod -n kube-system -o wide
NAME                             READY   STATUS    RESTARTS   AGE     IP                NODE      NOMINATED NODE   READINESS GATES
coredns-558bd4d5db-rb2bv         1/1     Running   0          2m57s   10.44.0.2         worker1   <none>           <none>
coredns-558bd4d5db-xrkj5         1/1     Running   0          2m57s   10.44.0.1         worker1   <none>           <none>
etcd-master                      1/1     Running   0          28m     192.168.159.135   master    <none>           <none>
kube-apiserver-master            1/1     Running   0          29m     192.168.159.135   master    <none>           <none>
kube-controller-manager-master   1/1     Running   0          27m     192.168.159.135   master    <none>           <none>
kube-proxy-6gpq2                 1/1     Running   0          36m     192.168.159.136   worker1   <none>           <none>
kube-proxy-x9r7z                 1/1     Running   0          35m     192.168.159.137   worker2   <none>           <none>
kube-proxy-zp4jq                 1/1     Running   0          37m     192.168.159.135   master    <none>           <none>
kube-scheduler-master            1/1     Running   0          28m     192.168.159.135   master    <none>           <none>
weave-net-grxjs                  2/2     Running   1          2d      192.168.159.137   worker2   <none>           <none>
weave-net-gsfqw                  2/2     Running   1          2d1h    192.168.159.135   master    <none>           <none>
weave-net-rsxmg                  2/2     Running   1          2d1h    192.168.159.136   worker1   <none>           <none>
anuj@master:~$
anuj@master:~$
anuj@master:~$ kubectl get node
NAME      STATUS   ROLES                  AGE    VERSION
master    Ready    control-plane,master   2d2h   v1.21.0
worker1   Ready    <none>                 2d1h   v1.21.0
worker2   Ready    <none>                 2d     v1.21.0
anuj@master:~$
anuj@master:~$

=====================================================================
Note:

To upgrade the all worker node please follow the upgrade worker node section for all worke nodes
=====================================================================

kubernetes Pod Scheduling

 ===================   Deployment ================= 1.) Deployment without any nodeName or nodeSelector, pod will spread among all of the av...