Kubernetes Upgrade: How to Upgrade Your Cluster Safely
Upgrading Kubernetes is a common operational task and CKA exam requirement. Follow this guide for safe cluster upgrades.
Upgrade Rules
- Upgrade one minor version at a time (1.28 → 1.29, not 1.28 → 1.30)
- Upgrade control plane before workers
- Backup etcd before upgrading
Check Current Version
kubectl get nodes
kubectl version --short
kubeadm versionUpgrade Control Plane
1. Upgrade kubeadm
# Unhold packages
sudo apt-mark unhold kubeadm
# Update and install new version
sudo apt-get update
sudo apt-get install -y kubeadm=1.29.0-1.1
# Hold version
sudo apt-mark hold kubeadm
# Verify
kubeadm version2. Plan Upgrade
sudo kubeadm upgrade plan3. Apply Upgrade
sudo kubeadm upgrade apply v1.29.04. Drain Control Plane
kubectl drain master --ignore-daemonsets5. Upgrade kubelet and kubectl
sudo apt-mark unhold kubelet kubectl
sudo apt-get install -y kubelet=1.29.0-1.1 kubectl=1.29.0-1.1
sudo apt-mark hold kubelet kubectl
# Restart kubelet
sudo systemctl daemon-reload
sudo systemctl restart kubelet6. Uncordon Control Plane
kubectl uncordon masterUpgrade Worker Nodes
Repeat for each worker node:
1. Upgrade kubeadm
sudo apt-get update
sudo apt-get install -y kubeadm=1.29.0-1.12. Upgrade Node Config
sudo kubeadm upgrade node3. Drain Node (from control plane)
kubectl drain worker-1 --ignore-daemonsets --delete-emptydir-data4. Upgrade kubelet and kubectl
sudo apt-get install -y kubelet=1.29.0-1.1 kubectl=1.29.0-1.1
sudo systemctl daemon-reload
sudo systemctl restart kubelet5. Uncordon Node
kubectl uncordon worker-1Verify Upgrade
kubectl get nodes
kubectl versionRollback Strategy
If upgrade fails:
- Restore etcd backup
- Reinstall previous kubeadm version
- Downgrade kubelet/kubectl
Practice Cluster Upgrades
Cluster upgrades appear in CKA exams. Practice at Sailor.sh.