I'm confused with this question, it's asking to upgrade to v1.20.0 but `kubeadm . . .

Allan Olweny:
I’m confused with this question, it’s asking to upgrade to v1.20.0 but kubeadm upgrade plan is showing v1.19.16
Doesn’t the kubeadm version have to match the kubernetes version?

Alistair Mackay:
You did already install kubeadm 1.20.00? It can’t upgrade without it.

Allan Olweny:
I did and it worked. I guess I didn’t understand the output of kubeadm upgrade plan.

I thought that it would show the highest stable version, ie. 1.24 not 1.19.16

Allan Olweny:

You can now apply the upgrade by executing the following command:

        kubeadm upgrade apply v1.19.16

Note: Before you can perform this upgrade, you have to update kubeadm to v1.19.16.

Allan Olweny:
The previous question asked what is the version that I could upgrade to and the answer was 1.19.16

so I was not expecting the next question to ask me to upgrade to 1.20.0

Allan Olweny:
Sorry if i’m rambling but I think I figured out what i’m trying to ask :slightly_smiling_face: What is the relationship between the kubeadm version and k8s version?
should they match, can one be higher than the other?

Alistair Mackay:
The official docs say a variance of one minor version is supported so that we can do things like upgrades

Alistair Mackay:
So for each node, beginning with the control plane, you go

  1. Upgrade kubeadm
  2. Upgrade the node
  3. Upgrade kubelet and restart it
  4. Upgrade kubectl if present

Alistair Mackay:
If you need to upgrade several versions, e.g to 1.23 you have to repeat the above steps for each of the versions in between, 1.20 -> 1.21 -> 1.22 -> 1.23

Allan Olweny:
got it now. (thinking out loud). kubeadm plan does actually spit out the most recent version (1.24.1)

so, you can either go to 1.9.x or 1.20.x.
BUT before you do that, you must upgrade kubeadmin to that version.
Thanks @Alistair Mackay

I0604 16:47:59.849178   34093 version.go:255] remote version is much newer: v1.24.1; falling back to: stable-1.19