# Cluster Upgrade ## Versions `vMajor.Minor.Patch` semantic versioning K8S compatibility is as follow : current and n-2 version are supported. **Always upgrade minor to minor releases**. ## kubeadm ### Check latest/upgradable version ```shell kubeadm upgrade plan ``` ## Master node upgrade ### Drain and mark it at Unschedulable ```shell kubectl drain master ``` `kubectl get nodes` to verify that master node is unschedulable ### kubeadm update ```shell apt install kubeadm=X.Y.Z-00 ``` `kubeadm version` to ensure version number ### Node update ```shell kubeadm upgrade apply vX.Y.Z ``` `kubectl version` to validate ### Update kubelet ```shell apt install kubelet=X.Y.Z-00 ``` `kubectl get nodes` to validate ### Mark master node as schedulable ```shell kubectl uncordon master ``` ## Worker nodes upgrade Repeat the same actions done on master for each worker node 🎉