En esta página, se explica cómo especificar qué entorno de ejecución de contenedor usa tu clúster para ejecutar Pods de Kubernetes. Para especificar el entorno de ejecución del contenedor, establece el valor del campo containerRuntime
en el archivo de configuración del clúster.
Puedes cambiar el valor del campo containerRuntime
solo cuando actualizas o instalas un clúster. Este campo es opcional y su valor predeterminado es containerd
si lo dejas sin definir.
Kubernetes 1.24 deja de ser compatible con Docker Engine
El componente dockershim
en Kubernetes permite que los nodos del clúster usen el entorno de ejecución del contenedor de Docker Engine. Sin embargo, Kubernetes 1.24 quitó el componente dockershim
. Debido a que la versión 1.13 de los clústeres de Anthos en equipos físicos se ejecutarán en Kubernetes 1.24, los clústeres de la versión 1.13 y posteriores ya no pueden usar Docker Engine.
Cuando actualices o crees clústeres, ten en cuenta las siguientes reglas del entorno de ejecución de contenedores:
- Debes usar
containerd
para los clústeres de versión 1.13 y posteriores. No puedes actualizar un clúster de la versión 1.12 que use Docker a la versión 1.13. - No puedes crear clústeres de la versión 1.12 que usen el entorno de ejecución del contenedor de Docker Engine.
- Puedes actualizar un clúster de la versión 1.11 que use Docker a un clúster de la versión 1.12 que use Docker. Sin embargo, te recomendamos que cambies a containerd antes de actualizar.
La instalación de Docker que usas en el desarrollo para crear imágenes no está relacionada con el entorno de ejecución del contenedor de Docker Engine dentro de tu clúster de Kubernetes. Aún puedes usar Docker para crear imágenes y compilar contenedores de aplicaciones. Esos contenedores aún funcionarán dentro de tu clúster.
Docker debe estar instalado en la estación de trabajo de administrador.
El comando bmctl
requiere Docker para operaciones, como la creación de clústeres.
El uso de Docker tampoco se ve afectado por la baja de dockershim
.
Para obtener instrucciones detalladas sobre cómo especificar el entorno de ejecución del contenedor que se usa en tu clúster, consulta las siguientes secciones.
Antes de comenzar
Identifica el entorno de ejecución de contenedores que deseas que usen tus clústeres. Solo puedes cambiar el valor del campo del entorno de ejecución del contenedor cuando actualizas o instalas un clúster.
Asegúrate de que tu implementación sea compatible con la versión 1.4.6 de
containerd
o con versiones posteriores. Los clústeres de Anthos en equipos físicos ejecutan esta versión en cualquier versión decontainerd
instalada con anterioridad.Asegúrate de que los clústeres de Anthos en equipos físicos puedan instalar los siguientes archivos que se instalan para ambos entornos de ejecución:
Archivos binarios
/usr/bin/containerd
/usr/bin/containerd-shim
/usr/bin/containerd-shim-runc-v1
/usr/bin/containerd-shim-runc-v2
/usr/bin/crictl
/usr/bin/ctr
/usr/local/sbin/runc
Archivos de configuración
/etc/crictl.yaml
/etc/systemd/system/containerd.service
/etc/containerd/config.toml
/etc/containerd/certs.d/
/etc/systemd/system/containerd.service.d/09-proxy.conf
Este archivo solo se instala si configuras un proxy HTTP.
Asegúrate de que los clústeres de Anthos en equipos físicos puedan instalar los siguientes certificados en tus nodos según el entorno de ejecución que elijas:
- Para
containerd
:/etc/docker/certs.d/
/etc/containerd/certs.d/
- Para Docker:
/etc/docker/certs.d/
- Para
Configura el entorno de ejecución del contenedor para un clúster nuevo
Para configurar el entorno de ejecución del contenedor en un clúster nuevo, establece el campo containerRuntime
en la sección nodeConfig
de spec
en tu archivo de configuración del clúster. Los clústeres de Anthos en equipos físicos admiten los siguientes valores:
containerd
docker
Si el campo está vacío o no se configura, los clústeres de Anthos en equipos físicos usan containerd
de forma predeterminada.
Para usar Docker, la entrada en tu configuración debe ser similar al siguiente ejemplo:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: docker
Configurar el entorno de ejecución del contenedor cuando se actualiza un clúster
Puedes configurar clústeres de Anthos en equipos físicos para usar un entorno de ejecución de contenedores diferente cuando realices la actualización. Solo puedes cambiar el valor del campo del entorno de ejecución del contenedor cuando actualizas o instalas un clúster.
Requisitos
- Actualizar clústeres de administrador antes de los clústeres de usuario
- Configura el valor del campo
containerRuntime
en tu archivo de configuración antes de actualizar tus clústeres.
Cambia el entorno de ejecución a Docker
Para configurar el entorno de ejecución del contenedor durante una actualización, establece el campo containerRuntime
en la sección nodeConfig
, en spec
, en el archivo de configuración del clúster. Los clústeres de Anthos en equipos físicos admiten los siguientes valores:
containerd
docker
Si deseas usar Docker, cambia tu archivo de configuración para que se vea como el siguiente ejemplo:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
nodeConfig:
containerRuntime: docker
Para establecer el entorno de ejecución del contenedor de los nodos del clúster en docker
como parte de su actualización, ejecuta el siguiente comando a fin de actualizar tus clústeres:
bmctl upgrade cluster
Actualiza los clústeres con Docker configurado como entorno de ejecución
Si configuras el entorno de ejecución del contenedor en docker
, el siguiente comando actualiza los certificados de registro de imágenes en /etc/containerd/certs.d/
.
bmctl update cluster
Restablece los clústeres que usan containerd como entorno de ejecución
Si usas el entorno de ejecución del contenedor predeterminado, el siguiente comando no borra la configuración, los archivos binarios ni los directorios:
bmctl reset cluster
Durante el restablecimiento, el servicio containerd
continúa ejecutándose, pero los contenedores que Kubernetes programó se detienen y se quitan del entorno de ejecución de containerd.
Borra los archivos y directorios binarios siguientes para completar el restablecimiento:
/etc/crictl.yaml
/etc/systemd/system/containerd.service
/etc/systemd/system/containerd.service.d/
/etc/containerd/config.toml
/etc/containerd/certs.d/
Si usas Docker como tu entorno de ejecución, no se realiza ninguna limpieza durante el restablecimiento.
Verifica el estado del entorno de ejecución
Para verificar el estado del entorno de ejecución como parte de la verificación de estado de la máquina, ejecuta el siguiente comando:
systemctl status RUNTIME
Reemplaza RUNTIME
por el entorno de ejecución elegido: containerd
o docker
.