El entorno de ejecución del contenedor es un software que se encarga de administrar los contenedores y las imágenes de contenedor en un nodo de Kubernetes. containerd es un entorno de ejecución de contenedores ascendido por 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
Google Distributed Cloud usa containerd para todos los nodos del clúster de administrador.
Compatibilidad con containerd en un clúster de usuario
Google Distributed Cloud admite los siguientes tipos de imágenes de SO para los nodos del clúster 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, Google Distributed Cloud ya no es compatible con el tipo de imagen de SO
ubuntu
. Todos los nodos del clúster deben usar el entorno de ejecución de 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.