Personaliza la configuración de containerd en nodos de GKE


En esta página, se muestra cómo personalizar la configuración del entorno de ejecución del contenedor de containerd en tus nodos de Google Kubernetes Engine (GKE). Ya debes estar familiarizado con qué es el entorno de ejecución del contenedor y por qué querrías personalizarlo.

Acerca de la configuración de containerd en GKE

Puedes configurar de forma manual un conjunto de opciones en el entorno de ejecución de containerd en nodos de GKE que ejecutan un sistema operativo como Container-Optimized OS. Personalizar el entorno de ejecución te permite configurar requisitos especiales, como el acceso a los registros de imágenes privadas. Para configurar estas opciones, crea un archivo YAML llamado archivo de configuración del entorno de ejecución y pasa el archivo a GKE cuando crees o actualices un clúster.

Este método de personalización de containerd te permite evitar implementar DaemonSets con privilegios, que son un riesgo de seguridad. Cuando proporcionas GKE un archivo de configuración del entorno de ejecución, GKE vuelve a crear los nodos y actualiza el archivo config.toml de containerd en cada nodo con tu configuración. La configuración persiste durante la finalización de nodos, las actualizaciones y las recreaciones.

El archivo de configuración del entorno de ejecución solo te permite configurar opciones en containerd. GKE también admite la configuración de opciones específicas de kubelet y opciones de kernel de Linux de bajo nivel mediante un archivo separado llamado archivo de configuración del sistema de nodos. Para obtener más detalles, consulta Personaliza la configuración del sistema de nodos.

Limitaciones

No puedes usar un archivo de configuración del entorno de ejecución para cambiar la configuración de containerd en las imágenes de nodo de Ubuntu. Solo se admite Container-Optimized OS con containerd. Esta es la imagen de nodo predeterminada para todos los clústeres de GKE.

Opciones de configuración de containerd disponibles

En la siguiente tabla, se describen las opciones que puedes configurar mediante un archivo de configuración del entorno de ejecución:

Opciones del archivo de configuración del entorno de ejecución

Accede a los registros de imágenes privadas con credenciales privadas que almacenas en Secret Manager.

Para obtener instrucciones, consulta Accede a registros privados con certificados de la AC privados.


privateRegistryAccessConfig:
  enabled: true
  certificateAuthorityDomainConfig:
  - gcpSecretManagerCertificateConfig:
      secretURI: "SECRET_LOCATION"
    fqdns:
    - "FQDN1"
    - "FQDN2"

Esta configuración tiene los siguientes campos:

  • enabled: true: habilita la configuración de registro privado. Si configuras enabled: false, borra cualquier otro campo en el elemento privateRegistryAccessConfig.
  • certificateAuthorityDomainConfig: contiene hasta cinco definiciones de certificado y FQDN.
  • gcpSecretManagerCertificateConfig: contiene un certificado almacenado en el Secret Manager y un array de FQDN.
  • secretURI: la ubicación del certificado en Secret Manager.
  • fqdns: una lista de nombres de dominio completamente calificados de registros privados. También puedes usar direcciones IPv4, pero recomendamos usar el FQDN.

Aplica la configuración de containerd a clústeres nuevos

En esta sección, se muestra cómo aplicar un archivo de configuración containerd cuando creas un clúster de GKE nuevo.

Ejecuta el siguiente comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --scopes="cloud-platform" \
    --containerd-config-from-file="PATH_TO_CONFIG_FILE"

Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre del clúster nuevo.
  • LOCATION: la ubicación de Compute Engine para el clúster nuevo.
  • PATH_TO_CONFIG_FILE: la ruta de acceso al archivo de configuración que creaste, como ~/containerd-configuration.yaml.

Puedes habilitar la configuración de registro privado en los clústeres estándar nuevos mediante la ejecución del comando gcloud container clusters create con las mismas opciones.

Aplica la configuración de containerd a los clústeres existentes

En esta sección, se muestra cómo aplicar una configuración de containerd a clústeres y nodos existentes.

Verifica los permisos de acceso

Los clústeres existentes deben tener el permiso de acceso cloud-platform para usar esta función. En esta sección, se muestra cómo verificar los permisos de acceso y actualizar un clúster existente con un archivo de configuración de registro privado nuevo o modificado.

Para obtener detalles sobre los permisos de acceso predeterminados en clústeres nuevos, consulta Permisos de acceso en GKE.

Verifica los permisos de acceso de Autopilot

Ejecuta el siguiente comando:

gcloud container clusters describe CLUSTER_NAME \
    --location=LOCATION \
    --flatten=nodeConfig \
    --format='csv[delimiter="\\n",no-heading](oauthScopes)'

Si tu clúster no tiene el permiso de acceso https://www.googleapis.com/auth/cloud-platform, crea un clúster nuevo con este permiso de acceso.

Verifica los permisos de acceso de Standard

Para verificar los permisos de acceso al clúster de Standard, verifica un grupo de nodos::

gcloud container node-pools describe NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=LOCATION \
    --flatten=nodeConfig \
    --format='csv[delimiter="\\n",no-heading](oauthScopes)'

Reemplaza NODE_POOL_NAME por el nombre del grupo de nodos.

Si tu clúster no tiene el permiso de acceso https://www.googleapis.com/auth/cloud-platform, crea un grupo de nodos nuevo con el permiso de acceso cloud-platform y borra tu grupo de nodos existente.

Actualiza el clúster para usar tu archivo de configuración

Ejecuta el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --location=LOCATION \
    --containerd-config-from-file="PATH_TO_CONFIG_FILE"

Vuelve a crear los nodos en los clústeres de Standard

Si tu clúster de Standard no usa actualizaciones automáticas, debes volver a crear manualmente tus grupos de nodos para aplicar la configuración nueva. Para activar una recreación manual de nodos, actualiza tu clúster a la misma versión de GKE que ya usa.

gcloud container clusters upgrade CLUSTER_NAME \
    --location=LOCATION \
    --cluster-version=VERSION

Reemplaza VERSION por la misma versión del parche de GKE que el clúster ya usa.

Inhabilita las opciones de configuración de containerd

Para quitar tu configuración personalizada, haz lo siguiente:

  1. Actualiza el archivo de configuración para especificar enabled: false en el elemento de configuración que deseas inhabilitar y borrar cualquier otro campo en el elemento, como en el siguiente ejemplo:

    privateRegistryAccessConfig:
      enabled: false
  2. Aplica la configuración actualizada al clúster. Para obtener instrucciones, consulta Aplica la configuración de containerd a clústeres existentes.