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