Note: In a real-world scenario, you should not perform upgrades on all worker nodes at the same time. Make sure enough nodes are available at any given time to provide uninterrupted service.
Run the following on the control plane node to drain worker node 1:
Log in to the first worker node, then Upgrade kubeadm.
Upgrade the kubelet configuration on the worker node.
Upgrade kubelet and kubectl on the worker node.
Restart kubelet.
From the control plane node, uncordon worker node 1.
Repeat the upgrade process for worker node 2.
From the control plane node, drain worker node 2.
On the second worker node, upgrade kubeadm.
Perform the upgrade on worker node 2.
From the control plane node, uncordon worker node 2.