Saltar al contenido principal

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 aislado
  • CreateContainer() - Crear un contenedor
  • StartContainer() - Iniciar un contenedor
  • StopContainer() - Detener un contenedor
  • RemoveContainer() - 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