This guide demonstrates upgrading a Kubernetes cluster from version 1.28 to 1.29 using kubeadm following official instructions.
In this guide, we demonstrate how to upgrade a Kubernetes cluster from version 1.28 to 1.29 using kubeadm. We follow the official “Upgrading a Kubeadm Cluster” instructions from the Kubernetes documentation. For further details, refer to the “Upgrading a Kubeadm Cluster” section in the Kubernetes Documentation.
The documentation provides dedicated instructions for each upgrade path. In this case, we are upgrading from 1.28 to 1.29 (the latest release). Similar procedures exist for other upgrade paths (e.g., 1.27 to 1.28, 1.26 to 1.27, etc.). Simply select the correct upgrade path and follow the detailed steps accordingly.
Before beginning the upgrade, review the updated package repository information. The legacy repositories (app.kubernetes.io and yum.kubernetes.io) have been deprecated. Moving forward, packages are available at packages.k8s.io. This repository now hosts the latest versions of essential tools such as kubectl and kubeadm.
Before proceeding, confirm that you are using the new package repositories. Check the documentation and click the provided link for the latest instructions.
For Debian/Ubuntu systems, update the repository to the new endpoint. First, switch to the new URL for your version upgrade. For version 1.29, execute:
Copy
Ask AI
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list
Before applying the upgrade, conduct a dry run to ensure compatibility:
Copy
Ask AI
sudo kubeadm upgrade plan
This command displays the upgrade details, including the components automatically upgraded and those requiring manual intervention (e.g., kubelet). A sample output might look like:
Copy
Ask AI
[upgrade/versions] Cluster version: v1.28.0[upgrade/versions] kubeadm version: v1.29.3[upgrade/versions] Target version: v1.29.3...Components that must be upgraded manually after you upgrade the control plane:COMPONENT CURRENT TARGETkubelet 2 x v1.28.0 v1.28.8...
Kubeadm upgrades most of the control plane components automatically but leaves the kubelet for manual upgrade.
Monitor the process as it renews certificates, updates static Pod manifests, and applies configuration changes. Once complete, you should see a success message such as:
Copy
Ask AI
[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.29.3". Enjoy![upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets.
Note: Until kubelet is upgraded, kubectl get nodes will still display version v1.28.0 for the kubelet.