El entorno de ejecución de contenedores 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 de contenedores principal. Sin embargo, Dockershim, el código de integración de Docker Engine en Kubernetes, dejó de estar disponible en Kubernetes 1.20 y se quitó en Kubernetes 1.24.
En el futuro, deberías usar containerd en tus clústeres.
Compatibilidad con containerd en un clúster de administrador
GKE en VMware usa containerd para todos los nodos del clúster de administrador.
Compatibilidad con containerd en un clúster de usuario
GKE en VMware admite los siguientes tipos de imágenes de SO para los nodos de clústeres de usuario:
Tipo de imagen de SO | Entorno de ejecución del contenedor |
---|---|
ubuntu_containerd | containerd |
cos | containerd |
windows | containerd |
Restricciones y recomendaciones
A partir de la versión 1.13.0, GKE en VMware ya no admite el tipo de imagen de SO
ubuntu
. Todos los nodos del clúster deben usar el entorno de ejecución containerd.No puedes actualizar un clúster que usa Docker Engine a la versión 1.13. Debes actualizar tu clúster para usar el entorno de ejecución de containerd antes de actualizar a la versión 1.13.
A partir de la versión 1.12.0, ya no puedes crear clústeres nuevos que usen el tipo de imagen de SO
ubuntu
. Es decir, ya no puedes crear clústeres nuevos que usen el entorno de ejecución de contenedores de Docker Engine.
Determina qué grupos de nodos usan Docker Engine
Ubuntu
Enumera los grupos de nodos de Ubuntu que usan Docker Engine:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get onpremnodepools \ -o json -A | jq -r '.items[] |select(.spec.osImageType == "ubuntu")|.metadata.name'
Reemplaza USER_CLUSTER_KUBECONFIG por la ruta del archivo kubeconfig del clúster de usuario.
Resultado de ejemplo:
ubuntu-node-pool-1 ubuntu-node-pool-3
Windows
Todos los grupos de nodos de Windows en un clúster de usuario usan el mismo entorno de ejecución de contenedores. El entorno de ejecución para los nodos de Windows se determina mediante el valor de enableWindowsDataplaneV2
, que es un campo del archivo de configuración del clúster de usuario.
Si enableWindowsDataplaneV2
es true
, todos los nodos de Windows del clúster de usuario usan containerd. Si es false
, todos los nodos de Windows usan Docker Engine.
Ejecuta el siguiente comando para determinar qué clústeres de usuarios tienen enableWindowsDataplaneV2
configurado como false
. Esto te indica qué clústeres de usuarios están configurados a fin de usar Docker Engine para los nodos de Windows.
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get onpremuserclusters \ -A -o json | jq -r '.items[] |select(.spec.enableWindowsDataplaneV2 == false)|.metadata.name'
En el resultado, se enumeran todos los clústeres de usuario configurados a fin de usar Docker Engine para los nodos de Windows. Por ejemplo:
user-cluster-1
Sin importar si un clúster de usuario tiene grupos de nodos de Windows, si el clúster tiene enableWindowsDataplaneV2
establecido como false
, no podrás actualizarlo a la versión 1.13.
Actualiza los grupos de nodos de Linux para usar containerd
Para cada grupo de nodos del archivo de configuración del clúster de usuario, configura osImageType
ubuntu_containerd
o cos
.
Ejemplo:
nodePools - name: "my-node-pool" osImageType: "ubuntu_containerd"
Actualiza el clúster de usuario:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Reemplaza lo siguiente:
ADMIN_CLUSTER_KUBECONFIG: la ruta del archivo kubeconfig del clúster de administrador
USER_CLUSTER_CONFIG: la ruta del archivo de configuración de tu clúster de usuario
Actualiza los nodos de Windows para usar containerd
En el archivo de configuración del clúster de usuario, configura enableWindowsDataplaneV2 como true
.
enableWindowsDataplaneV2: true
Actualiza el clúster de usuario:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Mediante el comando anterior, se establece el entorno de ejecución de contenedores como containerd para todos los nodos de Windows en el clúster.