Change Container Runtime without destroying cluster

12/2/2020

we are running multiple kubespray deployed clusters with 10-100 nodes.

with 1.20 kubernetes deperecates dockershim support -> https://github.com/kubernetes/kubernetes/blob/ab32085bf36fc7af1ded30456e2f09399dc1115f/CHANGELOG/CHANGELOG-1.20.md#deprecation

how to change the container runtime to containerd - without removing nodes and without destroying master.

-- Helmut Januschka
kubernetes
kubespray

2 Answers

12/3/2020

Please treat this answer as a friendly advise.

First of all, as suggested in yesterday's fresh article Don't Panic: Kubernetes and Docker:

You do not need to panic :)

Kubernetes is only deprecating Docker as a container runtime after v1.20. They are currently only planning to remove Docker runtime support in the 1.22 release in late 2021(almost year!), so please don't brake your 100 nodes clusters till work solution will appear :)

-- Vit
Source: StackOverflow

12/4/2020

i am not at panick, just wan't to be prepared we are at 1.19 already so 1.22 is not soo faar away.

anyways i tested it with a smaller cluster, and it was way easier as expected.

change: container_manager to containerd.

run the kubespray cluster.yml playbook over all nodes and boom. only needed to do a simple ansible playbook to uninstall docker et-all, but it also works with docker installed.

-- Helmut Januschka
Source: StackOverflow