Try Sailor Cloud - 25% off!

Claim Now
Back to all posts

Kubernetes Upgrade: How to Upgrade Your Cluster Safely

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

  1. Upgrade one minor version at a time (1.28 → 1.29, not 1.28 → 1.30)
  2. Upgrade control plane before workers
  3. Backup etcd before upgrading

Check Current Version

kubectl get nodes
kubectl version --short
kubeadm version

Upgrade 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 version

2. Plan Upgrade

sudo kubeadm upgrade plan

3. Apply Upgrade

sudo kubeadm upgrade apply v1.29.0

4. Drain Control Plane

kubectl drain master --ignore-daemonsets

5. 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 kubelet

6. Uncordon Control Plane

kubectl uncordon master

Upgrade Worker Nodes

Repeat for each worker node:

1. Upgrade kubeadm

sudo apt-get update
sudo apt-get install -y kubeadm=1.29.0-1.1

2. Upgrade Node Config

sudo kubeadm upgrade node

3. Drain Node (from control plane)

kubectl drain worker-1 --ignore-daemonsets --delete-emptydir-data

4. 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 kubelet

5. Uncordon Node

kubectl uncordon worker-1

Verify Upgrade

kubectl get nodes
kubectl version

Rollback Strategy

If upgrade fails:

  1. Restore etcd backup
  2. Reinstall previous kubeadm version
  3. Downgrade kubelet/kubectl

Practice Cluster Upgrades

Cluster upgrades appear in CKA exams. Practice at Sailor.sh.

Start Free Practice