Instalar Anthos Config Management

Anthos Config Management permite que los operadores de clústeres administren las implementaciones de Kubernetes con archivos llamados archivos de configuración almacenados en repositorios de Git.

En esta página, se muestra cómo habilitar y configurar Anthos Config Management. Sigue estos pasos para instalar y configurar Anthos Config Management en cada clúster que quieras administrar.

A fin de obtener instrucciones para instalar los componentes de Anthos Config Management, consulta Instala Config Connector, Instala el controlador de jerarquía y la instalación del controlador de políticas..

Antes de comenzar

Antes de instalar Anthos Config Management, asegúrate de haber preparado tu entorno, tus clústeres y tus funciones y de haber habilitado Anthos Config Management.

Prepara tu entorno local

Completa las siguientes tareas para preparar tu entorno local:

  1. Habilita la API de Anthos para tu proyecto:

    Console

    En Google Cloud Console, ve a la página API de Anthos.

    Ir a la página de la API de Anthos

    • Haz clic en Habilitar.

    gcloud

    Ejecuta el siguiente comando:

    gcloud services enable anthos.googleapis.com
    
  2. Instala y, luego, inicializa el SDK de Cloud, que proporciona los comandos gcloud, gsutil, kubectl y nomos que se usan en estas instrucciones. Si usas Cloud Shell, el SDK de Cloud viene preinstalado.

  3. El SDK de Cloud no instala kubectl de forma predeterminada. Para instalar kubectl, usa el siguiente comando:

    gcloud components install kubectl
    
  4. Usa el comando gcloud auth login para autenticarte en Google Cloud a fin de descargar los componentes de Anthos Config Management.

Prepara el clúster

Completa las siguientes tareas para preparar tu clúster:

  1. Asegúrate de que tu clúster esté en una plataforma y versión compatibles de Anthos.

  2. Registra tu clúster en un entorno de Anthos mediante Connect. El entorno de tu proyecto proporciona una forma unificada de ver y administrar tus clústeres y sus cargas de trabajo como parte de Anthos, incluidos los clústeres fuera de Google Cloud. Los cargos de Anthos solo se aplican a tus clústeres registrados.

Prepara permisos

Según el método de instalación que uses, debes otorgar a los usuarios que instalan Anthos Config Management diferentes permisos. Para obtener información sobre cómo otorgar funciones de administración de identidades y accesos (IAM), consulta la sección sobre cómo otorgar, cambiar y revocar el acceso a los recursos.

Console

El usuario de Google Cloud que instala Anthos Config Management necesita la función de administrador de GKE Hub (roles/gkehub.admin) para administrar tu clúster mediante la API de Hub.

gcloud

El usuario de Google Cloud que instala Anthos Config Management necesita la función de administrador de GKE Hub (roles/gkehub.admin) para administrar tu clúster mediante la API de Hub.

kubectl

Si usas GKE, el usuario de Google Cloud que instala Anthos Config Management necesita permisos de IAM para crear funciones nuevas en tu clúster.

Por ejemplo:

gcloud container clusters get-credentials CLUSTER_NAME

kubectl create clusterrolebinding cluster-admin-binding \
  --clusterrole cluster-admin --user USER_ACCOUNT

Reemplaza lo siguiente:

  • CLUSTER_NAME: El nombre del clúster
  • USER_ACCOUNT: La dirección de correo electrónico de tu cuenta de Google Cloud

Según cómo hayas configurado la herramienta de línea de comandos de gcloud en tu sistema local, es posible que debas agregar los campos --project y --zone.

Habilita Anthos Config Management

Si usas Anthos Config Management por primera vez, puedes seguir estos pasos para habilitar la función.

Console

  1. En Google Cloud Console, ve a la página Funciones de Anthos.

    Ir a la página Funciones de Anthos

  2. En la fila Config Management, haz clic en Habilitar.

  3. En la ventana de confirmación, haz clic en Habilitar Config Management.

gcloud

Ejecuta el siguiente comando:

 gcloud alpha container hub config-management enable

Instalar Anthos Config Management

En las siguientes secciones, otorgas acceso a Anthos Config Management a tu repositorio. Después de otorgar el acceso, configura la instalación.

Otorga acceso de solo lectura a Anthos Config Management a Git

Anthos Config Management necesita acceso de solo lectura a tu repositorio de Git para que pueda leer las configuraciones comprometidas en el repositorio y aplicarlas a tus clústeres. Si se requieren credenciales, se almacenan en el secreto git-creds de cada clúster inscrito.

Si el repositorio no requiere autenticación para acceso de solo lectura, puedes continuar con la configuración de Anthos Config Management y establecer secretType en none. Por ejemplo, si puedes explorar el repositorio mediante una interfaz web sin acceder a tu cuenta, o si puedes usar git clone para crear una clonación del repositorio de forma local sin proporcionar credenciales o usar credenciales guardadas, no es necesario que realices la autenticación. En este caso, no necesitas crear un Secret git-creds.

Sin embargo, la mayoría de los usuarios deben crear credenciales porque el acceso de lectura a su repositorio está restringido. Anthos Config Management admite los siguientes mecanismos de autenticación:

  • Par de claves SSH
  • cookiefile
  • Token
  • Cuenta de servicio de Google (solo repositorios de Google Source Repository)

El mecanismo que elijas dependerá de lo que admita tu repositorio. Si todos los mecanismos están disponibles, te recomendamos usar un par de claves SSH. GitHub, Cloud Source Repositories y Bitbucket son compatibles con el uso de un par de claves SSH. Si tu organización aloja tu repositorio y no sabes qué métodos de autenticación se admiten, comunícate con tu administrador.

Par de claves SSH

Un par de claves SSH consta de dos archivos, una clave pública y una clave privada. Por lo general, la clave pública tiene una extensión .pub.

Para usar un par de claves SSH, completa los siguientes pasos:

  1. Crea un par de claves SSH para permitir que Anthos Config Management se autentique en el repositorio de Git. Este paso es necesario si necesitas autenticarte en el repositorio para clonarlo o leer de él. Omite este paso si un administrador de seguridad te proporciona un par de claves. Puedes usar un solo par de claves para todos los clústeres o un par de claves por clúster, según tus requisitos de cumplimiento y seguridad.

    El siguiente comando crea una clave RSA de 4096 bits. No se recomiendan valores más bajos:

    ssh-keygen -t rsa -b 4096 \
    -C "GIT_REPOSITORY_USERNAME" \
    -N '' \
    -f /path/to/KEYPAIR_FILENAME
    

    Reemplaza lo siguiente:

    • GIT_REPOSITORY_USERNAME: el nombre de usuario que deseas que Anthos Config Management use para autenticar en el repositorio
    • /path/to/KEYPAIR_FILENAME: una ruta de acceso al par de claves

    Si usas un host del repositorio de Git de terceros, como GitHub, o deseas usar una cuenta de servicio con Cloud Source Repositories, te recomendamos que uses una cuenta distinta.

  2. Configura el repositorio para que reconozca la clave pública que acabas de crear. Consulta la documentación de tu proveedor de hosting de Git. Se incluyen instrucciones para algunos proveedores de hosting de Git populares para mayor comodidad:

  3. Agrega la clave privada a un Secret nuevo del clúster:

    kubectl create ns config-management-system && \
    kubectl create secret generic git-creds \
     --namespace=config-management-system \
     --from-file=ssh=/path/to/KEYPAIR_PRIVATE_KEY_FILENAME
    

    Reemplaza /path/to/KEYPAIR_PRIVATE_KEY_FILENAME por el nombre de la clave privada (la que no tiene el sufijo .pub).

  4. Borra la clave privada del disco local o protégela.

Archivo cookie

El proceso para adquirir un cookiefile depende de la configuración de tu repositorio. Para ver un ejemplo, consulta la sección sobre cómo generar credenciales estáticas en la documentación de Cloud Source Repositories. Por lo general, las credenciales se almacenan en el archivo .gitcookies en el directorio de tu página principal, o las puede proporcionar un administrador de seguridad.

Para usar un cookiefile, completa los siguientes pasos:

  1. Después de crear y obtener el cookiefile, agrégalo a un Secret nuevo en el clúster.

    kubectl create ns config-management-system && \
    kubectl create secret generic git-creds \
     --namespace=config-management-system \
     --from-file=cookie_file=/path/to/COOKIEFILE
    

    Reemplaza /path/to/COOKIEFILE por la ruta de acceso y el nombre de archivo adecuados.

  2. Protege el contenido de cookiefile, si aún lo necesitas usar de forma local. De lo contrario, bórralo.

Token

Si tu organización no permite el uso de claves SSH, se recomienda usar un token. Con Anthos Config Management, puedes usar los tokens de acceso personal (PAT) de GitHub o la contraseña de la aplicación de Bitbucket como token.

Para crear un secreto mediante el uso de tu token, completa los siguientes pasos:

  1. Crea un token mediante GitHub o Bitbucket:

  2. Después de crear y obtener el token, agrégalo a un Secret nuevo en el clúster:

    kubectl create ns config-management-system && \
    kubectl create secret generic git-creds \
      --namespace="config-management-system" \
      --from-literal=username=USERNAME \
      --from-literal=token=TOKEN
    

    Reemplaza lo siguiente:

    • USERNAME: el nombre de usuario que deseas usar
    • TOKEN: el token que creaste en el paso anterior
  3. Protege el token si lo necesitas de forma local. De lo contrario, bórralo.

Cuenta de servicio de Google

Si tu repositorio está en Cloud Source Repositories, puedes usar secretType: gcenode para otorgar a Anthos Config Management acceso a un repositorio en el mismo proyecto que tu clúster administrado.

Requisitos previos

Antes de comenzar, asegúrate de que se cumplan los siguientes requisitos:

  • Los permisos de acceso para los nodos del clúster deben incluir cloud-source-repos-ro. De forma predeterminada, la cuenta de servicio predeterminada de Compute Engine PROJECT_ID-compute@developer.gserviceaccount.com tiene acceso source.reader al repositorio del mismo proyecto, pero, si es necesario, puedes agregar la función mediante el siguiente comando:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --role roles/source.reader
    

    Reemplaza lo siguiente:

    • PROJECT_ID: el ID del proyecto de tu organización
    • PROJECT_NUMBER: el número de proyecto de tu organización
  • Los permisos de acceso para los nodos del clúster deben incluir cloud-source-repos-ro. Puedes agregar este permiso si incluyes cloud-source-repos-ro en la lista --scopes especificada en el momento de la creación del clúster o si usas el permiso cloud-platform en el momento de la creación del clúster:

    gcloud container clusters create example-cluster --scopes=cloud-platform
    

Usa Cloud Source Repositories como tu SyncRepo

Una vez que se cumplan estos requisitos previos, configura spec.git.syncRepo para la URL del repositorio deseado en Cloud Source Repositories cuando configures el operador de administración de configuración.

Para usar un repositorio en Cloud Source Repositories como SyncSync, completa los siguientes pasos:

  1. Enumera todos los repositorios:

    gcloud source repos list
    
  2. Copia la URL del repositorio que deseas usar desde el resultado:

    REPO_NAME  PROJECT_ID  URL
    my-repo    my-project  https://source.developers.google.com/p/my-project/r/my-repo-csr
    
  3. Agrega la URL como tu syncRepo. Por ejemplo:

    spec.git.syncRepo: https://source.developers.google.com/p/my-project/r/my-repo-csr
    

Usa Cloud Source Repositories con Workload Identity

Si Workload Identity está habilitado en el clúster, se requieren pasos adicionales para usar secretType: gcenode. Después de completar los pasos anteriores, y de configurar Anthos Config Management (lo que haces en la siguiente sección) crea una Vinculación de la política de IAM entre la cuenta de servicio de Kubernetes y la cuenta de servicio de Google. La cuenta de servicio de Kubernetes no se creará hasta que configures Anthos Config Management por primera vez.

Esta vinculación permite que la cuenta de servicio de Anthos Config Management Kubernetes funcione como la cuenta de servicio predeterminada de Compute Engine:

gcloud iam service-accounts add-iam-policy-binding \
  --role roles/iam.workloadIdentityUser \
  --member "serviceAccount:PROJECT_ID.svc.id.goog[config-management-system/importer]" \
  PROJECT_ID-compute@developer.gserviceaccount.com

Reemplaza PROJECT_ID por el ID del proyecto de tu organización.

Después de crear la vinculación, agrega un annotation a la cuenta de servicio de Anthos Config Management Kubernetes con la dirección de correo electrónico de la cuenta de servicio predeterminada de Compute Engine:

kubectl annotate serviceaccount -n config-management-system importer \
  iam.gke.io/gcp-service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.com

Reemplaza PROJECT_NUMBER por el número de proyecto de la organización.

Configuración de Anthos Config Management

Google Cloud Console te guía a través del proceso de instalación y automatiza muchos de los pasos. También puedes usar la herramienta de línea de comandos de gcloud o los comandos de kubectl para completar la instalación.

Si usas un clúster de GKE, te recomendamos que uses Cloud Console para configurar Anthos Config Management. Si usas un registro privado para tu clúster de GKE On-Prem, debes usar comandos de kubectl a fin de instalar Anthos Config Management, ya que los registros privados no son compatibles con Cloud Console ni con la herramienta de gcloud.

Para configurar Anthos Config Management, completa los siguientes pasos.

Console

  1. En Cloud Console, ve a la página Anthos Config Management.

    Ir a la página de Anthos Config Management

  2. Selecciona tus clústeres registrados y haz clic en Configurar.

  3. En la sección Autenticación de repositorio de Git para ACM, selecciona una de las siguientes opciones:

    • Ninguno
    • SSH
    • Cookiefile
    • Token
    • Google Cloud Repository

    Si aún no lo hiciste, otorga acceso de solo lectura a Anthos Config Management a Git.

  4. Haga clic en Continuar.

  5. En la sección Configuración de ACM para tus clústeres, completa los siguientes pasos:

    1. En el campo Versión, selecciona la versión para Anthos Config Management.
    2. Selecciona la casilla de verificación Habilitar el Sincronizador de configuración.
      1. En el campo URL, agrega la URL del repositorio de Git para usarla como fuente de información. Este campo es obligatorio.
      2. En el campo Rama, agrega la rama del repositorio desde la que deseas realizar la sincronización. El valor predeterminado es la rama principal (instancia principal). Este campo es obligatorio.
      3. En el campo Etiqueta/Confirmación, agrega la revisión de Git (etiqueta o hash) que se debe pagar. El predeterminado es HEAD.
      4. En el campo Directorio de políticas, agrega la ruta dentro del repositorio en la parte superior de la jerarquía de políticas que deseas sincronizar. La opción predeterminada es el directorio raíz del repositorio.
      5. En el campo Tiempo de espera de la sincronización, agrega el período en segundos entre las sincronizaciones consecutivas. El tiempo predeterminado es de 15 segundos.
      6. En el campo Proxy de Git, ingresa la URL para el proxy HTTPS que se usará durante la comunicación con el repositorio de Git. Este es un campo opcional y, si se deja en blanco, no se usa ningún proxy.
      7. En el campo Formato fuente, elige si el repositorio tiene una jerarquía o si es no estructurada.
  6. Haga clic en Listo. Volverás a la página Anthos Config Management. Después de unos minutos, deberías ver Synced en la columna de estado junto a los clústeres que configuraste. Si ves Error, haz clic en la palabra Error para obtener más información.

gcloud

  1. Crea un archivo llamado config-management.yaml y copia el siguiente archivo YAML en él:

    # config-management.yaml
    
    apiVersion: configmanagement.gke.io/v1
    kind: ConfigManagement
    metadata:
      name: config-management
    spec:
      git:
        syncRepo: REPO
        syncBranch: BRANCH
        secretType: TYPE
        policyDir: "DIRECTORY"
    

    Reemplaza lo siguiente:

    • REPO: La URL del repositorio de Git que se usará como fuente de información. Este campo es obligatorio.
    • BRANCH: La rama del repositorio desde la que se realiza la sincronización. El valor predeterminado es la rama principal (instancia principal). Este campo es obligatorio.
    • TYPE: Uno de los siguientes SecretTypes:

      • none
      • ssh
      • cookiefile
      • token
      • gcenode
    • DIRECTORY: La ruta de acceso en el repositorio de la parte superior de la jerarquía de políticas que se sincronizará. La opción predeterminada es el directorio raíz del repositorio.

      Para obtener una lista completa de los campos que puedes agregar al campo spec, consulta la siguiente sección Configuración del repositorio de Git. No cambies los valores de configuración fuera del campo de especificación.

  2. Aplica el archivo config-management.yaml:

     gcloud alpha container hub config-management apply \
         --membership=CLUSTER_NAME \
         --config=CONFIG_YAML_PATH \
         --project=PROJECT_ID
    

    Reemplaza lo siguiente:

    • CLUSTER_NAME: El nombre del clúster registrado en el que deseas aplicar esta configuración
    • CONFIG_YAML_PATH: La ruta de acceso a tu archivo config-management.yaml
    • PROJECT_ID: el ID de tu proyecto

kubectl

Cuando instalas Anthos Config Management con kubectl, debes implementar el operador antes de configurarlo. El operador es un controlador que administra Anthos Config Management en un clúster de Kubernetes.

Implementa el operador

Después de asegurarte de cumplir con todos los requisitos previos, puedes implementar el operador mediante la descarga y aplicación de un manifiesto YAML.

  1. Descarga la última versión del operador CustomResourceDefinition (CRD) con el siguiente comando. En cambio, si deseas descargar una versión específica, consulta Descargas.

    gsutil cp gs://config-management-release/released/latest/config-management-operator.yaml config-management-operator.yaml
    
  2. Aplica la CRD:

    kubectl apply -f config-management-operator.yaml

Si este comando falla, consulta Solución de problemas.

Configuración de Anthos Config Management

A fin de configurar el comportamiento de Anthos Config Management, crea un archivo de configuración para el CustomResource de Config Management y, luego, aplícalo con el comando kubectl apply:

  1. Crea un archivo llamado config-management.yaml y copia el siguiente archivo YAML en él.

    # config-management.yaml
    
    apiVersion: configmanagement.gke.io/v1
    kind: ConfigManagement
    metadata:
      name: config-management
    spec:
      # clusterName is required and must be unique among all managed clusters
      clusterName: CLUSTER_NAME
      git:
        syncRepo: REPO
        syncBranch: BRANCH
        secretType: TYPE
        policyDir: "DIRECTORY"
    

    Reemplaza lo siguiente:

    • CLUSTER_NAME: El nombre del clúster registrado en el que deseas aplicar esta configuración
    • REPO: La URL del repositorio de Git que se usará como fuente de información. Este campo es obligatorio.
    • BRANCH: La rama del repositorio desde la que se realiza la sincronización. El valor predeterminado es la rama principal (instancia principal). Este campo es obligatorio.
    • TYPE: Uno de los siguientes SecretTypes:

      • none
      • ssh
      • cookiefile
      • token
      • gcenode
    • DIRECTORY: La ruta de acceso en el repositorio de la parte superior de la jerarquía de políticas que se sincronizará. La opción predeterminada es el directorio raíz del repositorio.

    Para obtener una lista completa de los campos que puedes agregar al campo spec, consulta la siguiente sección Configuración del repositorio de Git. No cambies los valores de configuración fuera del campo de especificación.

  2. Aplica la configuración con el comando kubectl apply:

    kubectl apply -f config-management.yaml
    

    Es posible que debas crear archivos de configuración separados para cada clúster o tipo de clúster. Puedes especificar el clúster mediante la opción --context.

    kubectl apply -f config-management1.yaml --context=CLUSTER_NAME
    

    Reemplaza CLUSTER_NAME por el nombre del clúster que deseas usar.

Revisa la instalación

Después de instalar y configurar Anthos Config Management, puedes verificar que la instalación se haya completado con éxito.

Console

  1. En Cloud Console, ve a la página Anthos Config Management.

    Ir a la página de Anthos Config Management

  2. Consulta la columna Estado. Si la instalación se realiza correctamente, tendrá el estado Synced.

Para obtener una vista detallada del estado del clúster, sigue estos pasos:

  • Selecciona el clúster que deseas explorar. Aparecerá la página Detalles del clúster. En esta página, puedes ver los detalles de tu clúster y los detalles de tu instalación de Anthos Config Management.

gcloud

Ejecuta el siguiente comando:

gcloud alpha container hub config-management status
    --project=PROJECT_ID

Reemplaza PROJECT_ID por el ID de tu proyecto.

Si la instalación se realiza correctamente, tendrá el estado SYNCED. Si ves un error después de ejecutar el comando anterior, asegúrate de haber creado el Secret git-creds. Si creaste el Secret, vuelve a ejecutar el siguiente comando:

gcloud alpha container hub config-management apply

kubectl

Para comprobar si Anthos Config Management se instaló correctamente, puedes usar el comando nomos status. Una instalación válida sin problemas tiene el estado PENDING o SYNCED. Una instalación no válida o incompleta tiene el estado NOT INSTALLED o NOT CONFIGURED. La salida también incluye cualquier error informado.

Cuando Anthos Config Management se implementa de forma correcta, se ejecuta en un pod cuyo nombre comienza con config-management-operator en el espacio de nombres kube-system. La inicialización del Pod puede llevar unos minutos.

Verificar que el pod se esté ejecutando.

kubectl -n kube-system get pods | grep config-management

Si el pod se está ejecutando, la respuesta del comando es similar al siguiente ejemplo:

config-management-operator-6f988f5fdd-4r7tr 1/1 Running 0 26s

También puedes verificar que el espacio de nombres config-management-system exista:

kubectl get ns | grep 'config-management-system'

El resultado del comando es similar al siguiente ejemplo:

config-management-system Active 1m

Si los comandos no muestran un resultado similar al ejemplo anterior, consulta los registros para ver qué salió mal:

kubectl -n kube-system logs -l k8s-app=config-management-operator

También puedes usar kubectl get events para verificar si Anthos Config Management creó eventos.

kubectl get events -n kube-system

Es posible tener una configuración no válida que no se detecte de inmediato, como un Secret git-creds no especificado o no válido. Para ver los pasos de solución de problemas, consulta Objeto ConfigManagement válido, pero incorrecto en la sección sobre solución de problemas de esta página.

Actualiza las versiones de Anthos Config Management

En esta sección, se proporcionan instrucciones generales para actualizar a una nueva versión. Antes de realizar la actualización, consulta las notas de la versión para obtener instrucciones específicas.

Console

  1. En Cloud Console, ve a la página Anthos Config Management.

    Ir a la página de Anthos Config Management

  2. Selecciona los clústeres que deseas actualizar.

  3. Haz clic en Configurar.

  4. Haz clic en Configuración de ACM para tus clústeres.

  5. En el menú desplegable Versión, selecciona la versión a la que deseas actualizar.

  6. Haga clic en Listo.

kubectl

Ejecuta estos comandos para cada clúster inscrito:

  1. Descarga el manifiesto de Anthos Config Management y los comandos de nomos para la versión nueva.

  2. Aplica el manifiesto de Anthos Config Management:

    kubectl apply -f config-management-operator.yaml
    

    Este comando actualiza la imagen de Anthos Config Management. Kubernetes recupera la versión nueva y reinicia el Pod de Anthos Config Management mediante la versión nueva. Cuando se inicia Anthos Config Management, se ejecuta un bucle de conciliación que aplica el conjunto de manifiestos agrupados en la imagen nueva. Esto actualiza y reinicia cada pod componente.

  3. Reemplaza el comando nomos o nomos.exe en todos los clientes con la versión nueva. Este cambio garantiza que el comando nomos siempre pueda obtener el estado de todos los clústeres inscritos y validar los archivos de configuración para ellos.

Desinstala Anthos Config Management de un clúster

Sigue estas instrucciones para desinstalar Anthos Config Management desde un clúster. Debes seguir estos pasos para cada clúster que ya no quieras administrar mediante Anthos Config Management.

Console

  1. En Google Cloud Console, ve a la página Funciones de Anthos.

    Ir a la página Funciones de Anthos

  2. En la fila Config Management de la tabla Funciones, haz clic en Detalles. Aparecerá la página Resumen de estado.

  3. Haz clic en Inhabilitar Config Management. Aparecerá una página de confirmación.

  4. En la página de confirmación, haz clic en Inhabilitar Config Management.

gcloud

Ejecuta el siguiente comando:

gcloud alpha container hub config-management delete \
    --project=PROJECT_ID \
    --membership=CLUSTER_NAME

Reemplaza lo siguiente:

  • CLUSTER_NAME: el nombre del clúster registrado en el que deseas aplicar esta configuración
  • PROJECT_ID: el ID de tu proyecto

Para borrar todas las configuraciones y estados de Anthos Config Management, ejecuta el siguiente comando:

gcloud alpha container hub config-management disable \
    --project=PROJECT_ID

Reemplaza PROJECT_ID con el ID del proyecto.

kubectl

  1. Borra el objeto ConfigManagement del clúster:

    kubectl delete configmanagement --all
    

    Sucederá lo siguiente:

    • Todos los ClusterRoles y los ClusterRoleBindings creados por Anthos Config Management en el clúster se borran del clúster.
    • Se borran todas las configuraciones del controlador de admisión instaladas por Anthos Config Management.
    • Se borrarán los contenidos del espacio de nombres config-management-system, a excepción del Secreto git-creds. Anthos Config Management no puede funcionar sin el espacio de nombres config-management-system. Se quitarán las CustomResourceDefinitions (CRD) que Anthos Config Management creó o modificó de los clústeres en los que se crearon o modificaron. El CRD necesario para ejecutar Anthos Config Management todavía existe desde el punto de vista de Kubernetes, el usuario que instalaba la configuración de Anthos Config Management. En el siguiente paso, se explica cómo quitar estos componentes.
  2. En este punto, el Operador todavía existe en tu clúster, pero no hace nada. Si estás utilizando GKE on-prem, no puedes eliminar el operador manualmente.

    Si usas GKE y decides que ya no quieres usar Anthos Config Management, puedes desinstalar Anthos Config Management mediante estos pasos:

    1. Verifica que el espacio de nombres config-management-system esté vacío después de borrar el objeto ConfigManagement en el paso anterior. Espera hasta que el comando kubectl -n config-management-system get all muestre No resources found..

    2. Borra el espacio de nombres config-management-system:

      kubectl delete ns config-management-system
      
    3. Borra la CustomResourceDefinition de ConfigManagement:

      kubectl delete crd configmanagements.configmanagement.gke.io
      
    4. Borra todos los objetos de Anthos Config Management del espacio de nombres kube-system:

      kubectl -n kube-system delete all -l k8s-app=config-management-operator
      

Soluciona problemas

Las siguientes secciones te ayudarán a solucionar los problemas de la instalación de Anthos Config Management.

Usa registros de auditoría

Los registros de auditoría pueden ser una herramienta útil para depurar.

Si instalaste Anthos Config Management con Cloud Console o la herramienta de línea de comandos de gcloud, completa los siguientes pasos para usar los registros de auditoría a fin de investigar Anthos Config Management.

Console

  1. Habilita los registros de auditoría de las API de GKE Connect/Hub.

    1. En Cloud Console, ve a la página de Registros de auditoría de IAM.

      Ir a la página Registros de auditoría

    2. En la tabla, selecciona la casilla de verificación API de GKE Connect/Hub.

    3. Seleccione las siguientes casillas de verificación:

      • Lectura de administración
      • Lectura de datos
      • Escritura de datos
    4. Haz clic en Guardar.

  2. Ir a la página Explorador de registros

    Ir a la página Explorador de registros

  3. En el cuadro de texto Compilador de consultas, agrega los siguientes filtros:

    resource.type="audited_resource" resource.labels.service="gkehub.googleapis.com"
    
  4. Haga clic en Run Query.

  5. En la sección Resultados de consultas, selecciona entradas para obtener más información sobre los eventos.

CPU insuficiente

La salida de kubectl get events podría incluir un evento con el tipo FailedScheduling. El resultado se ve como en el siguiente ejemplo:

LAST SEEN   TYPE      REASON              OBJECT                                       MESSAGE
9s          Warning   FailedScheduling    pod/config-management-operator-74594dc8f6    0/1 nodes are available: 1 Insufficient cpu.

Para corregir este error, elige una de las siguientes opciones:

  • agregar un nodo a un grupo de nodos de GKE existente, o
  • crear un grupo de nodos con nodos más grandes

Error: intenta otorgar privilegios adicionales

Si recibes el siguiente error cuando intentas aplicar el archivo config-management-operator.yaml, es posible que tengas menos permisos de los que se requieren para la instalación:

Error from server (Forbidden): error when creating "config-management-operator.yaml": clusterroles.rbac.authorization.k8s.io "config-management-operator" is forbidden: attempt to grant extra privileges: [...] ruleResolutionErrors=[]

A fin de asegurarte de que tienes los permisos necesarios, consulta Prepara los permisos.

Objeto ConfigManagement válido pero incorrecto

Si la instalación falla debido a un problema con el objeto ConfigManagement que no se debe a un error de sintaxis de YAML o JSON, es posible que se cree una instancia del objeto ConfigManagement en el clúster, pero que no funcione de manera correcta. En este caso, puedes usar el comando nomos status para verificar si hay errores en el objeto ConfigManagement.

Una instalación válida sin problemas tiene el estado PENDING o SYNCED.

Una instalación no válida tiene un estado de NOT CONFIGURED y enumera uno de los siguientes errores:

  • missing git-creds Secret
  • missing required syncRepo field
  • git-creds Secret is missing the key specified by secretType

Para solucionar el problema, corrige el error de configuración. Según el tipo de error, es posible que debas volver a aplicar el manifiesto de ConfigManagement al clúster.

Si el problema es que te olvidaste de crear el secreto git-creds, Anthos Config Management detecta el secreto en cuanto lo creas y no es necesario volver a aplicar la configuración.

Campos config-management.yaml

En las siguientes secciones, se explican los diferentes campos que puedes configurar en el archivo config-management.yaml.

Configuración del repositorio de Git

Clave Descripción
spec.git.syncRepo La URL del repositorio de Git que se usará como fuente de información. Obligatoria.
spec.git.syncBranch La rama del repositorio desde la que se realiza la sincronización. Valor predeterminado: master.
spec.git.policyDir La ruta de acceso dentro del repositorio de Git que representa el nivel superior del repositorio que se sincronizará. Opción predeterminada: el directorio raíz del repositorio.
spec.git.syncWait Período en segundos entre sincronizaciones consecutivas. Valor predeterminado: 15.
spec.git.syncRev Revisión de Git (etiqueta o hash) que puedes consultar. Opción predeterminada: HEAD.
spec.git.secretType El tipo de secreto configurado para acceder al repositorio de Git: Es uno de los siguientes: ssh, cookiefile, token, gcenode o none. Obligatorio
spec.sourceFormat Cuando se establece en unstructured, configura un repositorio no jerárquico. Valor predeterminado: hierarchy.

Configuración del proxy para el repositorio de Git

Si las políticas de seguridad de tu organización requieren que enrutes el tráfico a través de un proxy HTTP(S), puedes usar el URI del proxy para configurar Anthos Config Management a fin de que se comunique con tu host de Git.

Clave Descripción
spec.git.proxy.httpProxy Define una variable de entorno HTTP_PROXY que se usa para acceder al repositorio de Git.
spec.git.proxy.httpsProxy Define una variable de entorno HTTPS_PROXY que se usa para acceder al repositorio de Git.

Si se especifican los campos httpProxy y httpsProxy, se ignora httpProxy.

Configuración del comportamiento del objeto ConfigManagement

Clave Descripción
spec.clusterName El nombre definido por el usuario para el clúster que ClusterSelectors usa a fin de agrupar clústeres. Es único dentro de la instalación de Anthos Config Management. No puedes configurar este campo en Cloud Console.

Configuración para integraciones

Estos campos permiten la integración con el conector de configuración y el controlador de políticas.

Key Descripción
spec.configConnector.enabled Si es true, se instala Config Connector. La configuración predeterminada es false.
spec.policyController.enabled Si es true, se habilita Policy Controller. La configuración predeterminada es false.
spec.policyController.templateLibraryInstalled Si es true, se instala la biblioteca de plantillas de restricciones. La configuración predeterminada es true.

¿Qué sigue?