Kubernetes abandonne Docker dans la prochaine version

La plupart d’entre vous ont entendu la nouvelle : Kubernetes abandonne Docker en tant que runtime de conteneur après la version 1.20, en faveur des runtimes qui utilisent le Container Runtime Interface (CRI)Cependant, cela ne signifie pas pour autant la mort de Docker, ni le fait d’abandonner votre outil de conteneurisation préféré.

Kubernetes abandonne Docker

En effet, pas de grand changement pour vous en tant qu’utilisateur final de Kubernetes, vous pourrez toujours créer vos conteneurs à l’aide de docker et produire des images avec docker build qui seront toujours exécutées dans votre cluster Kubernetes.

Alors, pourquoi toute cette histoire ? Qu’est-ce qui change et pourquoi Docker semble soudainement être le mouton noir ? Devrions-nous continuer à écrire des fichiers Dockerfiles ?

Kubernetes abandonne Docker : entre la confusion et la panique, on vous explique…

La confusion provient du fait que nous parlons de deux environnements complètement différents. À l’intérieur du cluster Kubernetes, le démon d’exécution de conteneur est le responsable du cycle de vie complet du conteneur (extraction et stockage d’images, exécution et supervision de conteneurs, liaisons réseau…).

C’est ainsi que Docker est devenu très populaire pour assurer ce rôle. Cependant, il n’a pas été conçu pour être intégré à Kubernetes et cela pose des problèmes.

En effet, Docker n’est pas seulement un environnement d’exécution de conteneurs, c’est une pile technologique complète avec de nombreuses améliorations UX pour simplifier le processus d’interactions avec elle pendant le développement. Le moteur d’exécution de conteneurs (contrainerd. et containerd) ainsi contenu dans Docker est de haut niveau  pour les conteneurs.

Malgré cela, toutes ces améliorations UX sont inutiles pour le Kubernetes. En effet, le cluster Kubernetes doit contourner ces obstacles en utilisant un autre outil, Dockershim, pour atteindre ce dont il a vraiment besoin : containerd. 

Et c’est cette couche supplémentaire qui génère plus de complexité : en effet elle doit être entretenue et présente un risque de « cassure », entraînant alors d’éventuels bugs et autres problèmes.

Donc, pour limiter le besoin de cette couche supplémentaire , Kubernetes supprimera Dockershim dans la version 1.23, et donc cela interrompra le support Docker.

Mais alors avec ce changement quel sera l’impact sur les développeurs?

Ce changement fait certes couler beaucoup d’encre, mais il n’aura aucun impact si vous utilisez Docker dans votre processus de développement. En effet, l’installation de Docker pour le développement n’a rien à voir avec le runtime à l’intérieur du cluster Kubernetes.

Lorsque vous créez une image à l’aide de Docker, le résultat n’est pas spécifique à Docker. Effectivement, c’est une image OCI ( Open Container Initiative ). Elle sera complète et compatible ainsi Kubernetes et ses environnements d’exécution de conteneurs conformes tels que containerd ou CRI-O, savent comment extraire et travailler avec ces images. C’est pourquoi la norme de conteneur a été créée.

D’autre part, si vous utilisez un service Kubernetes géré, tel que GKE ou EKS, vous devrez vous assurer que vos nœuds exécutent un environnement d’exécution de conteneur pris en charge avant que la prise en charge de Docker ne soit supprimée dans une future version de K8S. Vous devrez aussi réappliquer ou faire une mise à jour de vos configurations personnalisées. Si vous exécutez Kubernetes sur site, vous devez également apporter des modifications pour éviter les problèmes et les surprises indésirables

Conclusion

Lors de la mise à jour vers la version 1.20, vous recevrez un avertissement d’obsolescence de Docker. Ce changement arrive, et comme tout autre, il causera probablement des problèmes au début. Mais ce n’est pas catastrophique et, à long terme, cela facilitera les choses.

J’espère que cet article a clarifié certaines choses et soulagé certaines angoisses. En fin de compte, ces changements ne signifieront probablement rien pour vous en tant que développeur. Je vous invite à parcourir notre liste d’articles autour de Kubernetes et de Docker ici

About Oussama ABAI

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Résoudre : *
1 + 30 =