Somehow I installed 1.19 as my MicroK8s cluster version. Of course I want 1.20. This should be easy because of the version skew support in K8s:

So what I did was spin up 3 new VM's as nodes, and joined them to my cluster:

So now I have 3 nodes with version 1.19 and 3 nodes with version 1.20. Next thing to do is drain the three 1.19 nodes.

kubectl drain xxx.singel.home --delete-local-data --ignore-daemonsets --force

This went sort of okay. The only deployment that did not came back up was my SonarQube deployment. A quick look at the logs revealed why:

I forgot to install the nfs-common package on the new nodes:

sudo apt install nfs-common

After this all pods were running again and the three 1.19 are ready to update:

Not sure if this is the correct method, but what I did is on a 1.19 node:

sudo microk8s leave

This will bring the cluster on that node back to a standalone setup.

sudo snap remove microk8s

To remove the 1.19 version. And from another node in the cluster:

sudo microk8s remove-node micro3.singel.home

Now re-install microk8s on the node where I just removed it:

sudo snap install microk8s --classic

sudo microk8s status --wait-ready

And rejoin this node to the cluster with microk8s add-node from an existing cluster node and microk8s join on the 'new' node.

This will give me a cluster with four 1.20 nodes:

Two more to go and my cluster will be 1.20 only.