containerd
Technologie

containerd

Un runtime de conteneurs standard de l'industrie

containerd est un runtime de conteneurs qui gère l’ensemble du cycle de vie des conteneurs sur un hôte : transfert et stockage des images, exécution et supervision des conteneurs, et rattachements bas niveau au stockage et au réseau. C’est le runtime par défaut derrière la plupart des offres Kubernetes managées, ainsi que derrière Docker lui-même.

Comment ça marche

containerd s’exécute comme un daemon sur chaque nœud et expose une API gRPC que des systèmes de plus haut niveau, comme le kubelet de Kubernetes via la Container Runtime Interface (CRI) ou le Docker Engine, utilisent pour récupérer des images et démarrer des conteneurs. Il délègue l’exécution effective des processus à un runtime de plus bas niveau (typiquement runc), ce qui permet à containerd de rester concentré sur la gestion du cycle de vie plutôt que sur la mécanique des namespaces et des cgroups.

Concepts clés

  • Image : un ensemble de système de fichiers immuable et en couches, récupéré depuis un registre.
  • Snapshot : le système de fichiers copy-on-write que containerd construit pour un conteneur en cours d’exécution à partir des couches d’une image.
  • Task : une instance en cours d’exécution d’un conteneur, adossée à un processus du système d’exploitation.
  • Namespace (propre à containerd, à ne pas confondre avec les namespaces Kubernetes) : isole les conteneurs et les ressources appartenant à différents clients sur un même hôte.

Pourquoi les équipes s’appuient sur containerd

  • Minimal et ciblé. Il fait une seule chose, la gestion du cycle de vie des conteneurs, et la fait bien, plutôt que d’embarquer une CLI, des outils de build et de l’orchestration.
  • Natif CRI. Il implémente directement la Container Runtime Interface de Kubernetes, de sorte que le kubelet dialogue avec lui sans couche de compatibilité supplémentaire.
  • Éprouvé. C’est le runtime qui se trouve sous le capot de la grande majorité des clusters Kubernetes en production.
  • Projet CNCF graduated. Sa gouvernance et ses pratiques de sécurité sont validées par la même fondation que celle qui héberge Kubernetes.

Pour commencer

Sur la plupart des plateformes Kubernetes managées, containerd est déjà le runtime configuré : il n’y a rien à installer. Là où vous devez le configurer directement (cluster auto-géré, nœud bare metal ou développement local avec nerdctl), les guides ci-dessous couvrent les configurations courantes.