OpsCanary
kubernetesupgradesPractitioner

Mastering kubeadm Upgrades: Strategies for Smooth Transitions

5 min read Kubernetes DocsAug 30, 2026Reviewed for accuracy
Share
PractitionerHands-on experience recommended

Upgrading your kubeadm cluster is essential for keeping your Kubernetes environment secure and efficient. As new versions are released, they often include important bug fixes, security patches, and performance improvements. However, the upgrade process can be tricky if not handled correctly, especially when it comes to managing workloads and ensuring minimal downtime.

The upgrade workflow is straightforward but requires careful execution. Start by upgrading the primary control plane node using the kubeadm upgrade command. Once that node is upgraded, proceed to the additional control plane nodes, and finally, upgrade the worker nodes. It’s critical to drain each node before upgrading the kubelet to avoid disruptions. Remember, all containers will restart after the upgrade due to changes in the container spec hash value. To check the status of the kubelet service after the upgrade, use systemctl status kubelet or inspect the logs with journalctl -xeu kubelet. If you're upgrading etcd, be aware that in-flight requests will stall while the new etcd static pod restarts, which can impact your applications.

In production, you need to be aware of some common pitfalls. For instance, the legacy package repositories have been deprecated, so ensure you're using the new ones for your upgrades. Also, if you're upgrading from a version earlier than v1.28, kubeadm will upgrade addons immediately during the kubeadm upgrade apply, which may lead to compatibility issues if other control plane instances haven't been upgraded yet. Always back up important components before proceeding with an upgrade, as this is a best practice that can save you from potential data loss.

Key takeaways

  • Execute `kubeadm upgrade` on the primary control plane node first.
  • Drain nodes before upgrading kubelet to avoid disruptions.
  • Check kubelet status with `systemctl status kubelet` post-upgrade.
  • Be aware that in-flight requests will stall during etcd upgrades.
  • Always back up important components before starting an upgrade.

Why it matters

In production, a smooth upgrade process can prevent downtime and maintain application availability. Understanding the nuances of kubeadm upgrades ensures that your cluster remains stable and secure.

Code examples

Bash
kubeadm upgrade
Bash
sudo kubeadm upgrade plan
Bash
# replace x with the patch version you picked for this upgradesudo kubeadm upgrade apply v1.37.x

When NOT to use this

Skipping MINOR versions when upgrading is unsupported. If you're considering a major version jump, be cautious and ensure that your applications and configurations are compatible with the new version.

Want the complete reference?

Read official docs

Test what you just learned

Quiz questions written from this article

Take the quiz →
Linux FoundationSponsor

Industry-standard certifications built by the people behind Linux and Kubernetes. Earn the CKA — the gold standard Kubernetes administrator cert. OpsCanary readers get 30% off year-round with code OPSCANARY3.

Get CKA certified →

Get the daily digest

One email. 5 articles. Every morning.

No spam. Unsubscribe anytime.