En este documento, 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). Antes de leer este documento, asegúrate de conocer qué es un entorno de ejecución de contenedores y por qué te gustaría personalizarlo.
Información sobre 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 registros de imágenes privadas. Para configurar estas opciones, debes crear un archivo YAML llamado archivo de configuración del entorno de ejecución y pasar el archivo 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 son un riesgo de seguridad. Cuando proporcionas a GKE un archivo de configuración del entorno de ejecución, GKE vuelve a crear tus nodos y actualiza el archivo config.toml
de containerd en cada nodo con tu configuración.
La configuración persiste a través de la finalización, las actualizaciones y las recreaciones de nodos.
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 nodo. 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 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 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: " Esta configuración tiene los siguientes campos:
|
Aplica 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 cuando creas clúster de GKE nuevo.
Ejecuta el siguiente comando:
gcloud container clusters create-autoCLUSTER_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 clústeres estándar nuevos con 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 los 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 describeCLUSTER_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 estándar, verifica 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)'
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 el grupo de nodos existente.
Actualiza el clúster para usar el archivo de configuración
Ejecuta el siguiente comando:
gcloud container clusters updateCLUSTER_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 estándar no usa actualizaciones automáticas, debes volver a crear de forma manual 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 upgradeCLUSTER_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:
-
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
- Aplica el archivo de configuración actualizado al clúster. Para obtener instrucciones, consulta Aplica la configuración de containerd a clústeres existentes.