Google Distributed Cloud usa containerd como el entorno de ejecución de contenedores en todos los nodos del clúster de administrador y de usuario, incluidos los nodos de Windows. Como un entorno de ejecución de contenedores graduado de Cloud Native Computing Foundation (CNCF), containerd proporciona compatibilidad integrada con Kubernetes.
En Kubernetes 1.24, se quitó dockershim, el componente que permitía que Kubernetes usara Docker Engine como su entorno de ejecución de contenedores. En este documento, encontrarás grupos de nodos que aún usan Docker Engine y los actualizarás a containerd.
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 imagen de SO para los nodos del clúster de usuario:
| Tipo de imagen de SO | Entorno de ejecución del contenedor |
|---|---|
ubuntu_cgv2 | containerd |
cos_cgv2 | containerd |
windows | containerd |
Restricciones y recomendaciones
A partir de la versión 1.13.0, Google Distributed Cloud ya no admite 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 use Docker Engine a la versión 1.13. Debes actualizar el 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 con 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
como osImageType, ubuntu_cgv2 o cos_cgv2.
Ejemplo:
nodePools - name: "my-node-pool" osImageType: "ubuntu_cgv2"
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.