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 officiel | https://containerd.io/ |
| Licence | Apache 2.0 |
| Nationalité | International (CNCF) |
| Type | Runtime de conteneurs CRI-compatible |
| Déploiement | Daemon système, intégré dans Kubernetes |
| Difficulté | Intermédiaire |
| Technologies | Go, 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
- Documentation containerd : https://containerd.io/docs/
- GitHub : https://github.com/containerd/containerd
- nerdctl (client CLI) : https://github.com/containerd/nerdctl