Imágenes de nodo containerd


En esta página se proporciona información sobre las imágenes de nodo que usan containerd como entorno de ejecución de contenedores en tus nodos de Google Kubernetes Engine (GKE).

Acerca de Containerd

El entorno de ejecución del contenedor es el software que se encarga de ejecutar contenedores y abstrae la administración de contenedores para Kubernetes. Hay diferentes entornos de ejecución de contenedores.

El entorno de ejecución de containerd es un entorno de ejecución del contenedor estándar de la industria que es compatible con Kubernetes y que muchos otros proyectos usan. El entorno de ejecución de containerd proporciona la abstracción por capas que permite la implementación de un amplio conjunto de funciones comogVisor y Transmisión de imágenes para extender la funcionalidad de GKE.

El entorno de ejecución de containerd se considera el recurso más eficiente y seguro que el entorno de ejecución de Docker.

Usa imágenes de containerd en clústeres de GKE

Cuando creas un clúster de GKE nuevo o un grupo de nodos nuevo en un clúster existente, o cuando actualizas un clúster existente, puedes elegir usar una imagen de nodo en contenedor. Los clústeres de Autopilot de GKE siempre usan Container-Optimized OS con containerd.

En la siguiente tabla, se describen las imágenes de nodo en contenedores compatibles según el modo de clúster y el SO del grupo de nodos:

Cluster mode SO del grupo de nodos Imagen de nodo
Autopilot Linux cos_containerd
Estándar Linux
  • cos_containerd
  • ubuntu_containerd
Estándar Windows Server

Estas imágenes requieren la versión 1.21.1-gke.2200 de GKE o una posterior.

Usa Pods privilegiados para acceder a Docker

Si tus usuarios acceden a Docker Engine en un nodo mediante un Pod privilegiado, debes actualizar esas cargas de trabajo para que no dependan directamente de Docker. Por ejemplo, considera migrar el proceso de extracción de registros y supervisión de Docker Engine a complementos del sistema de GKE.

Compila imágenes de contenedores con containerd

No puedes usar containerd para compilar imágenes de contenedor. Las imágenes de Linux con containerd incluyen el objeto binario de Docker para que puedas usar Docker a fin de compilar y enviar imágenes. Sin embargo, no recomendamos el uso de contenedores individuales y nodos locales a fin de ejecutar comandos para compilar imágenes.

Kubernetes no tiene conocimiento de los recursos del sistema usados por los procesos locales fuera del alcance de Kubernetes, y el plano de control de Kubernetes no puede dar cuenta de esos procesos cuando se asignan recursos. Esto puede privar a tus cargas de trabajo de recursos de GKE o causar inestabilidad en el nodo.

Considera cumplir estas tareas mediante otros servicios fuera del alcance del contenedor individual, como Cloud Build, o usa una herramienta como kaniko para compilar imágenes como una carga de trabajo de Kubernetes.

Si ninguna de estas sugerencias te funciona y comprendes los riesgos, puedes seguir usando Docker en el nodo local para compilar imágenes. Debes enviar las imágenes a un registro para poder usarlas en un clúster de GKE. Kubernetes con containerd no conoce las imágenes compiladas de forma local mediante Docker.

Depura contenedores en nodos de containerd

Para depurar o solucionar problemas en el nodo de Linux, puedes interactuar con containerd mediante la herramienta de línea de comandos portátil creada para entornos de ejecución de contenedor de Kubernetes: crictl. crictl admite funcionalidades comunes para ver imágenes y contenedores, leer registros y ejecutar comandos en los contenedores. Consulta la guía del usuario de crictl para ver el conjunto completo de características admitidas y la información de uso.

Para los nodos de Windows Server, el daemon Containerd se ejecuta como un servicio de Windows llamado containerd.

Los registros están disponibles de la siguiente manera:

  • Windows: C:\etc\kubernetes\logs\containerd.log
  • Linux: ejecuta journalctl -u containerd

También puedes ver los registros de los nodos de Windows y Linux en el Explorador de registros, en LOG NAME: "container-runtime".

Problemas conocidos y solución de problemas

Para solucionar problemas y ver problemas conocidos con soluciones alternativas, consulta Soluciona problemas del entorno de ejecución del contenedor.

¿Qué sigue?

  • Obtén más información sobre la integración en Containerd en el anuncio de Kubernetes 1.11. Consulta la documentación de containerd y los complementos de CRI si deseas obtener todavía más información.
  • Revisa la información de la migración de Dockershim en kubernetes.io.
  • Lee acerca de la baja de DockerShim de Kubernetes.
  • Obtén información para proteger tus apps con gVisor en containerd.
  • Lee sobre los beneficios de usar Cloud Build para compilar imágenes de forma segura y confiable en Google Cloud a fin de reemplazar una solución personalizada que podría requerir Docker.