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/

⚠️ **GitHub.com Fallback** ⚠️