Kubernetes plus compatible avec Docker ?
Annoncé lors de la sortie de la version 1.20
de Kubernetes, la fin du
support de DockerShim comme Runtime Container sera effective pour la
version 1.24
.
Qu’est ce que DockerShim ?
Que fait le Container Runtime au sein de Kubernetes ? Il est chargé de récupérer les images (pull) et de gérer l’exécution des conteneurs. Pour rappel, c’est Kubelet, le service qui tourne sur les workers nodes, qui communique avec le Container Runtime pour réaliser ces opérations.
Mais pourquoi cette fin de support ? En fait Docker ne respectait pas
complètement la norme CRI et donc a eu jusqu’à la version 18.09
besoin d’une
interface. Cette interface s’appelle dockershim
.
Pourquoi jusqu’à la version 18.09
? Tout simplement parce que Docker a choisi
d’utiliser containerd qui lui respecte la norme.
Donc pas besoin d’avoir peur de cette fin de support, sauf si vous utilisez une
version antérieure à la 18.09
de Docker.
Remplacer Containerd par Cri-o
Utilisons la CKASandBox pour voir comment migrer de Docker à Cri-O. On doit se connecter au noeud worker1.
C’est bien containerd qui tourne comme CRI. Lancons la migration. Depuis un autre terminal se connecter au controller :
Retour sur la session avec le noeud worker1 :
Il faut modifier la conf de cri-o (tjs sur worker1) :
Ca tourne modifions la configuration de kubelet :
Depuis le controller on controle que le node est a nouveau Ready :