Aller au contenu principal

containerd

Overview

containerd est un runtime de conteneurs de haut niveau, extrait du projet Docker et devenu un projet indépendant de la CNCF. Il est aujourd'hui le runtime de référence pour Kubernetes, utilisé par défaut dans la plupart des distributions (kubeadm, k3s, k0s). containerd gère le cycle de vie complet des conteneurs, la gestion des images, et l'intégration avec les runtimes de bas niveau comme runC.

Conçu pour être léger, performant et conforme à CRI (Container Runtime Interface), containerd offre une alternative moderne à Docker Engine pour les environnements Kubernetes. Il expose une API gRPC et peut être utilisé directement ou via des clients comme nerdctl.


Informations essentielles

PropriétéValeur
Site officielhttps://containerd.io/
LicenceApache 2.0
NationalitéInternational (CNCF)
TypeRuntime de conteneurs CRI-compatible
DéploiementDaemon système, intégré dans Kubernetes
DifficultéIntermédiaire
TechnologiesGo, gRPC

TL;DR

containerd est le choix standard pour Kubernetes en production. Il offre un bon équilibre entre performance, légèreté et fonctionnalités, avec une excellente intégration avec Kubernetes.

Points clés à retenir :

  • Runtime de référence pour Kubernetes
  • Léger et performant, conforme à CRI
  • Utilisé par défaut dans kubeadm, k3s, k0s
  • API gRPC pour intégration programmatique
  • Nécessite des outils supplémentaires (nerdctl) pour une expérience CLI complète

Compatibilité et intégrations

  • Conforme à CRI (Container Runtime Interface)
  • Compatible avec les images OCI standard
  • Intégration native avec Kubernetes
  • Supporte les runtimes de bas niveau (runC, Kata, gVisor)
  • API gRPC pour intégration avec d'autres outils

Avantages

  • Runtime de référence pour Kubernetes
  • Léger et performant, faible consommation de ressources
  • Conforme aux standards OCI et CRI
  • Architecture modulaire et extensible
  • Large adoption dans l'industrie

Limites

  • Moins d'outils CLI natifs que Docker (nécessite nerdctl)
  • Courbe d'apprentissage pour les utilisateurs venant de Docker
  • Moins adapté au développement local sans Kubernetes
  • Debugging peut être plus complexe sans outils familiers

Ressources