containerd
Un runtime de contenedores estándar de la industria
containerd es un runtime de contenedores que gestiona el ciclo de vida completo de los contenedores en un host: transferencia y almacenamiento de imágenes, ejecución y supervisión de contenedores, y conexiones de almacenamiento y red de bajo nivel. Es el runtime predeterminado detrás de la mayoría de las ofertas administradas de Kubernetes, y detrás del propio Docker.
Cómo funciona
containerd se ejecuta como un daemon en cada nodo y expone una API gRPC que los sistemas de nivel superior —el kubelet de Kubernetes, mediante la Container Runtime Interface (CRI), o el Docker Engine— usan para descargar imágenes e iniciar contenedores. Delega la ejecución real de procesos en un runtime de más bajo nivel (normalmente runc), manteniendo a containerd centrado en la gestión del ciclo de vida y no en la mecánica de namespaces y cgroups.
Conceptos clave
- Image (imagen) — un paquete de sistema de archivos inmutable y en capas descargado de un registro.
- Snapshot — el sistema de archivos copy-on-write que containerd construye para un contenedor en ejecución a partir de las capas de una imagen.
- Task (tarea) — una instancia en ejecución de un contenedor, respaldada por un proceso del sistema operativo.
- Namespace (el propio de containerd, distinto de los namespaces de Kubernetes) — aísla contenedores y recursos de distintos clientes en el mismo host.
Por qué los equipos confían en containerd
- Mínimo y enfocado. Hace un trabajo —la gestión del ciclo de vida de los contenedores— y lo hace bien, en lugar de incluir una CLI, herramientas de construcción y orquestación.
- Nativo de CRI. Implementa directamente la Container Runtime Interface de Kubernetes, así que el kubelet habla con él sin una capa shim adicional.
- Probado en batalla. Es el runtime que hay bajo el capó de la gran mayoría de los clústeres de Kubernetes en producción.
- Proyecto graduado de la CNCF. Su gobernanza y sus prácticas de seguridad están avaladas por la misma fundación que aloja al propio Kubernetes.
Primeros pasos
En la mayoría de las plataformas administradas de Kubernetes, containerd ya es el runtime configurado: no hay nada que instalar. Donde sí necesites configurarlo directamente (un clúster autogestionado, un nodo bare metal o desarrollo local con nerdctl), las guías siguientes cubren las configuraciones más comunes.