En esta página se explica cómo personalizar la configuración del tiempo de ejecución de contenedores containerd en los nodos de Google Kubernetes Engine (GKE). Antes de leer este documento, asegúrate de que sabes qué es un runtime de contenedor y por qué querrías personalizarlo.
Información sobre la configuración de containerd en GKE
Puedes configurar manualmente un conjunto de opciones en el tiempo de ejecución de containerd en nodos de GKE que ejecuten un sistema operativo como Container-Optimized OS. La personalización del tiempo de ejecución te permite configurar requisitos especiales, como el acceso a registros de imágenes privadas. Para definir estas opciones, crea un archivo YAML llamado archivo de configuración de tiempo de ejecución y pásalo a GKE cuando crees o actualices un clúster.
Este método de personalización de containerd te permite evitar la implementación de DaemonSets con privilegios, que suponen un riesgo para la seguridad. Cuando proporcionas a GKE un archivo de configuración de tiempo 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 se mantiene aunque se termine, actualice o vuelva a crear el nodo.
El archivo de configuración de tiempo de ejecución solo te permite configurar opciones en containerd. GKE también permite configurar opciones específicas de kubelet y opciones de kernel de Linux de bajo nivel mediante un archivo independiente llamado archivo de configuración del sistema de nodos. Para obtener más información, consulta el artículo sobre cómo personalizar la configuración del sistema de nodos.
Limitaciones
No puedes usar un archivo de configuración de tiempo de ejecución para cambiar los ajustes de containerd en imágenes de nodo de Ubuntu. Solo se admite Container-Optimized OS con containerd. Esta es la imagen de nodo predeterminada de 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 de tiempo de ejecución:
Opciones de archivo de configuración del tiempo de ejecución | |
---|---|
|
Accede a registros de imágenes privados con credenciales privadas que almacenes en Secret Manager. Para obtener instrucciones, consulta Acceder a registros privados con certificados de CA privada. privateRegistryAccessConfig: enabled: true certificateAuthorityDomainConfig: - gcpSecretManagerCertificateConfig: secretURI: " Esta configuración tiene los siguientes campos:
|
Aplicar la configuración de containerd a clústeres nuevos
En esta sección se muestra cómo aplicar un archivo de configuración de containerd al crear un clúster de GKE.
Ejecuta el siguiente comando:
gcloud container clusters create-autoCLUSTER_NAME
\ --location=LOCATION
\ --scopes="cloud-platform" \ --containerd-config-from-file="PATH_TO_CONFIG_FILE
"
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre del nuevo clúster.LOCATION
: la ubicación de Compute Engine de tu nuevo clúster.PATH_TO_CONFIG_FILE
: la ruta al archivo de configuración que has creado, como~/containerd-configuration.yaml
.
Puedes habilitar la configuración de registro privado en los nuevos clústeres Estándar ejecutando el comando gcloud container clusters create
con las mismas opciones.
Aplicar la configuración de containerd a clústeres
En esta sección se muestra cómo aplicar una configuración de containerd a clústeres y nodos.
Comprobar los permisos de acceso
Los clústeres ya creados deben tener el ámbito de acceso cloud-platform
para usar esta función. En esta sección se explica cómo comprobar los ámbitos de acceso y actualizar un clúster con un archivo de configuración de registro privado nuevo o modificado.
Para obtener información sobre los permisos de acceso predeterminados en los clústeres nuevos, consulta Permisos de acceso en GKE.
Comprobar los permisos de acceso de Autopilot
Ejecuta el siguiente comando:
gcloud container clusters describeCLUSTER_NAME
\ --location=LOCATION
\ --flatten=nodeConfig \ --format='csv[delimiter="\\n",no-heading](oauthScopes)'
Si tu clúster no tiene el https://www.googleapis.com/auth/cloud-platform
ámbito de acceso, crea uno nuevo con este ámbito.
Consultar los permisos de acceso estándar
Para comprobar los ámbitos de acceso de tu clúster estándar, consulta un grupo de nodos:
gcloud container node-pools describeNODE_POOL_NAME
\ --cluster=CLUSTER_NAME
\ --location=LOCATION
\ --flatten=nodeConfig \ --format='csv[delimiter="\\n",no-heading](oauthScopes)'
Sustituye NODE_POOL_NAME
por el nombre del grupo de nodos.
Si tu clúster no tiene el ámbito de acceso https://www.googleapis.com/auth/cloud-platform
, crea un grupo de nodos con el ámbito de acceso cloud-platform
y elimina el grupo de nodos que ya tengas.
Actualizar el clúster para que use el archivo de configuración
Ejecuta el siguiente comando:
gcloud container clusters updateCLUSTER_NAME
\ --location=LOCATION
\ --containerd-config-from-file="PATH_TO_CONFIG_FILE
"
Volver a crear nodos en clústeres estándar
Si tu clúster estándar no usa actualizaciones automáticas, debes volver a crear manualmente tus grupos de nodos para aplicar la nueva configuración. Para activar una recreación manual de nodos, actualiza tu clúster a la misma versión de GKE que ya utiliza.
gcloud container clusters upgradeCLUSTER_NAME
\ --location=LOCATION
\ --cluster-version=VERSION
Sustituye VERSION
por la misma versión del parche de GKE que ya usa el clúster.
Inhabilitar opciones de configuración de containerd
Para quitar la configuración personalizada, siga estos pasos:
-
Actualiza el archivo de configuración para especificar
enabled: false
en el elemento de configuración que quieras inhabilitar y elimina cualquier otro campo del elemento, como en el siguiente ejemplo:privateRegistryAccessConfig: enabled: false
- Aplica el archivo de configuración actualizado a tu clúster. Para obtener instrucciones, consulta Aplicar la configuración de containerd a clústeres ya creados.