Usa containerd para el entorno de ejecución del contenedor

El entorno de ejecución del contenedor es el software responsable de administrar los contenedores y las imágenes de contenedor en un nodo de Kubernetes. Containerd es un entorno de ejecución de contenedores graduado de CNCF (Cloud Native Cloud Foundation). Es compatible con Kubernetes de forma nativa y se considera más seguro y eficiente en cuanto a recursos que Docker Engine para Kubernetes. Hasta Kubernetes 1.20, Docker Engine era el entorno de ejecución principal del contenedor. Sin embargo, Dockershim, el código de integración de Docker Engine en Kubernetes, dejó de estar disponible en Kubernetes 1.20 y se quitará en Kubernetes 1.24. Por lo tanto, los usuarios de clústeres de Anthos alojados en VMware (GKE On-Prem) deben planificar el uso de containerd para su entorno de ejecución lo antes posible.

Compatibilidad con Containerd en los nodos del clúster del administrador de clústeres de Anthos alojados en VMware

En los clústeres de Anthos alojados en VMware 1.8, el clúster de administrador usa containerd en todos los nodos: el nodo principal de administrador, los nodos de complementos de administrador y los nodos principales de usuario. Esto se aplica a los clústeres de administrador nuevos y existentes que se actualizaron desde la versión 1.7.x.

Compatibilidad con Containerd en nodos del clúster de usuario de clústeres de Anthos alojados en VMware

Los clústeres de Anthos alojados en VMware 1.8 presentan un nuevo tipo de imagen de SO ubuntu_containerd. El tipo de imagen de SO ubuntu_containerd usa la misma imagen de SO que ubuntu, pero el nodo está configurado para usar containerd como el entorno de ejecución del contenedor en lugar de Docker Engine.

En la versión 1.8, el tipo de imagen de SO de ubuntu_containerd se usa de forma predeterminada para un grupo de nodos nuevo si no se especifica osImageType. Sin embargo, si actualizas un grupo de nodos existente desde la versión 1.7.x, estos grupos seguirán usando Docker Engine después de la actualización.

Si quieres seguir usando Docker Engine para un grupo de nodos nuevo, a partir de la versión 1.8, debes especificar ubuntu de forma explícita como osImageType. Como se quitará la compatibilidad con Docker Engine en Kubernetes 1.24, debes planear la conversión de tus grupos de nodos para usar el tipo de imagen de SO ubuntu_containerd.

Actualiza el osImageType que usa un grupo de nodos

Consulta Actualiza el osImageType de un grupo de nodos.

Migra de Docker Engine a Containerd

Estos recursos proporcionan información general sobre la migración de Docker Engine a containerd.

Verifica el tipo de imagen de nodo

Puedes verificar qué tipo de imagen se usa para los nodos existentes.

Para verificar con kubectl, haz lo siguiente:

kubectl get nodes -o wide --kubeconfig ADMIN_CLUSTER_KUBECONFIG

En el ejemplo anterior, se ilustra lo siguiente:

  • ADMIN_CLUSTER_KUBECONFIG es la ruta de acceso del archivo kubeconfig del clúster de administrador.

El resultado es similar a este:

NAME ...  OS-IMAGE ...         CONTAINER-RUNTIME
node-1    Ubuntu 18.04.5 LTS   containerd://1.4.3
node-2    Ubuntu 18.04.5 LTS   containerd://1.4.3
node-3    Ubuntu 18.04.5 LTS   containerd://1.4.3

La columna CONTAINER-RUNTIME muestra el entorno de ejecución y su versión.

Para verificar dentro del nodo, ejecuta lo siguiente comando:

sudo crictl version

El resultado es similar a este:

Version:  0.1.0
RuntimeName:  containerd
RuntimeVersion:  1.4.3-0ubuntu0~18.04.1
RuntimeApiVersion:  v1alpha2