Upgrading Kubernetes Cluster - anavarrocloud/kubernetes GitHub Wiki
Master Nodes (In my Case, Test Cluster only has One Master)
List Available Binaries
dnf list --showduplicates kubeadm --disableexcludes=kubernetes
Install the one you require (x86_64 for my use case)
dnf install -y kubeadm.x86_64 --disableexcludes=kubernetes
Confirm kubeadm version
kubeadm version
Verify Upgrade Path
sudo kubeadm upgrade plan
Apply Upgrade
kubeadm upgrade apply v1.33.3
Evict Pods Forcibly (Force not recommanded, however for me I only have one Master and PDBs I can’t Delete)
kubectl drain <node-to-drain> --ignore-daemonsets --delete-emptydir-data --force
Upgrade Kubelet and Kubectl
install -y kubelet.x86_64 kubectl.x86_64 --disableexcludes=kubernetes
Reload Systemd Services
sudo systemctl daemon-reload
Restart Kubelet Service
sudo systemctl restart kubelet
Uncordon the now upgraded node if no other maintenance is required
kubectl uncordon <node-to-uncordon>
HA/Multi-Master Clusters
(Run these on the Other Master Nodes after Upgrading the first Master)
List Available Binaries
dnf list --showduplicates kubeadm --disableexcludes=kubernetes
Install the one you require (x86_64 for my use case)
dnf install -y kubeadm.x86_64 --disableexcludes=kubernetes
Confirm kubeadm version
kubeadm version
Verify Upgrade Path
sudo kubeadm upgrade plan
Apply Upgrade (After First Controlplane)
kubeadm upgrade node v1.33.3
Evict Pods Forcibly
kubectl drain <node-to-drain> --ignore-daemonsets --delete-emptydir-data
Upgrade Kubelet and Kubectl
install -y kubelet.x86_64 kubectl.x86_64 --disableexcludes=kubernetes
Reload Systemd Services
sudo systemctl daemon-reload
Restart Kubelet Service
sudo systemctl restart kubelet
Uncordon the now upgraded node if no other maintenance is required
kubectl uncordon <node-to-uncordon>
Worker Nodes
List Available Binaries
dnf list --showduplicates kubeadm --disableexcludes=kubernetes
Install the one you require (x86_64 for my use case)
dnf install -y kubeadm.x86_64 --disableexcludes=kubernetes
Confirm kubeadm version
kubeadm version
Verify Upgrade Path
sudo kubeadm upgrade plan
Apply Upgrade to Worker
kubeadm upgrade node v1.33.3
Evict Pods
kubectl drain <node-to-drain> --ignore-daemonsets --delete-emptydir-data
Upgrade Kubelet and Kubectl
install -y kubelet.x86_64 kubectl.x86_64 --disableexcludes=kubernetes
Reload Systemd Services
sudo systemctl daemon-reload
Restart Kubelet Service
sudo systemctl restart kubelet
Uncordon the now upgraded node if no other maintenance is required
kubectl uncordon <node-to-uncordon>
Additional Reference and Information:
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/