Capítulo 2.8 - Container Runtime
Objetivos de Aprendizaje
Al final de este capítulo, usted será capaz de:
- Comprender el rol del Container Runtime
- Identificar los diferentes runtimes soportados
- Explicar la interfaz CRI
- Comprender el aislamiento de los contenedores
¿Qué es un Container Runtime?
El Container Runtime es el software responsable de la ejecución de los contenedores en un nodo. Gestiona el ciclo de vida de los contenedores: creación, inicio, detención, eliminación.
Container Runtime Interface (CRI)
Kubernetes utiliza CRI para comunicarse con los runtimes:
Operaciones CRI
RunPodSandbox()- Crear un entorno aisladoCreateContainer()- Crear un contenedorStartContainer()- Iniciar un contenedorStopContainer()- Detener un contenedorRemoveContainer()- Eliminar un contenedor
Runtimes Soportados
1. containerd (Recomendado)
Runtime moderno, ligero, utilizado por defecto en muchas distribuciones:
Ventajas:
- Ligero y de alto rendimiento
- Estándar de la industria
- Soporta OCI (Open Container Initiative)
2. CRI-O
Runtime optimizado para Kubernetes:
Ventajas:
- Especialmente diseñado para Kubernetes
- Ligero
- Compatible con OCI
3. Docker (Obsoleto)
Docker vía dockershim (obsoleto desde Kubernetes 1.24):
Nota: Docker Engine aún puede ser utilizado, pero a través de containerd.
Aislamiento y Seguridad
Namespaces de Linux
Los contenedores utilizan los namespaces de Linux para el aislamiento:
Tipos de namespaces:
- PID: Aislamiento de procesos
- Network: Aislamiento de red
- Mount: Aislamiento del filesystem
- UTS: Aislamiento de hostname
- IPC: Aislamiento inter-procesos
- User: Aislamiento de usuarios
Cgroups
Limitación de recursos:
Ciclo de Vida de un Contenedor
Imágenes de Contenedores
Pull de Imágenes
El Container Runtime descarga las imágenes desde los registries:
Formatos de Imágenes
- OCI: Open Container Initiative (estándar)
- Docker: Formato Docker (compatible con OCI)
Comandos Útiles
# Ver los contenedores (si Docker)
docker ps
# Ver las imágenes
docker images
# Ver los logs de un contenedor
docker logs <container-id>
# Inspeccionar un contenedor
docker inspect <container-id>
Resumen
En este capítulo, usted ha aprendido:
Container Runtime: Ejecuta los contenedores en los nodos
CRI: Interfaz estándar para comunicarse con los runtimes
Runtimes: containerd, CRI-O (recomendados), Docker (obsoleto)
Aislamiento: Namespaces de Linux y cgroups
Imágenes: Descarga desde los registries
Próximos Pasos
Ahora que usted comprende el Container Runtime:
Capítulo 2.9: Comunicación Inter-Componentes
Capítulo 2.10: Add-ons y Extensiones
Capítulo creado el: diciembre 2024