Instala Anthos Config Management

Esta página está destinada a los administradores de la plataforma.

En esta página, se describe cómo instalar Anthos Config Management.

Anthos Config Management te permite aplicar políticas y opciones de configuración a tus clústeres de Anthos de forma declarativa mediante la implementación automática de la configuración nueva de un repositorio central de Git. Consulta la documentación de Anthos Config Management para obtener más información.

Puedes instalar Anthos Config Management mediante el centro de administración o mediante kubectl. Debes tener un repositorio de Git antes de instalar Anthos Config Management.

Instala desde el centro de administración

Para configurar Anthos Config Management en tu clúster de usuario, navega a la pestaña Administración de la configuración y haz clic en Configuración. Luego, sigue las instrucciones que se indican en la página para finalizar la configuración.

También puedes actualizar una instalación existente de Anthos Config Management. Haz clic en el vínculo debajo de la columna Versión para modificar la configuración existente.

Instala con kubectl

La instalación de Anthos Config Management con kubectl es un proceso de dos pasos. Primero, configura las claves SSH para que el Sincronizador de configuración se autentique con tu repositorio de Git. Luego, instala los recursos de Anthos Config Management, ConfigManagementFeatureSpec y ConfigManagementBinding, en el clúster.

También puedes usar kubectl para actualizar una instalación existente de Anthos Config Management.

Configura 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.

  1. Crea un par de claves SSH para permitir que el Sincronizador de configuración se autentique en tu repositorio de Git. 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 seguridad y cumplimiento.

    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 el Sincronizador de configuración use para autenticarse en el repositorio.
    • /path/to/KEYPAIR_FILENAME: Es la ruta de acceso al resultado del par de claves.
  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.

  3. Agrega la clave privada a un objeto secreto nuevo del clúster de usuario.

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

    Reemplaza lo siguiente:

    • USER_CLUSTER_KUBECONFIG: El archivo de configuración del clúster de usuario. Puedes obtenerla en el centro de administración.
    • /path/to/KEYPAIR_PRIVATE_KEY_FILENAME: El nombre de la clave privada (el archivo sin el sufijo .pub)
  4. Borra la clave privada del disco local o protégela.

Configura ConfigManagementFeatureSpec y ConfigManagementBinding

A continuación, crea un recurso ConfigManagementFeatureSpec en el clúster:

kubectl apply -f CONFIG_MANAGEMENT_YAML --kubeconfig=ADMIN_OIDC_KUBECONFIG

Reemplaza lo siguiente:

apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementFeatureSpec
metadata:
  name: config-management-spec-sample
  namespace: anthos-management-center
spec:
  version: "1.11.1"
  git:
    syncRepo: "git@GIT_HOST_ADDRESS:REPO_NAME.git"
    policyDir: "."
    secretType: "ssh"
    syncBranch: "master"
    syncRev: "HEAD"
    syncWait: 15
  policyController:
    enabled: true
---
apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementBinding
metadata:
  name: config-management-binding-sample
  namespace: anthos-management-center
spec:
  configs:
  - configRef:
      name: config-management-spec-sample
      namespace: anthos-management-center
    placement:
      clusterIDs:
      - "CLUSTER-NAME"

Reemplaza lo siguiente:

  • GIT_HOST_ADDRESS: La dirección del host del repositorio de Git.
  • REPO_NAME: El nombre del repositorio de Git.
  • CLUSTER-NAME: Es el nombre del clúster.

Actualiza

Puedes actualizar Anthos Config Management si modificas el ConfigManagementFeatureSpec correspondiente.

Por ejemplo, para habilitar la característica Repositorio no estructurado, actualiza la ConfigManagementFeatureSpec:

apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementFeatureSpec
metadata:
  name: config-management-spec-sample
  namespace: anthos-management-center
spec:
  version: "1.11.1"
  sourceFormat: "unstructured"
  git:
    syncRepo: "git@<YOUR_GIT_HOST_ADDRESS>:<YOUR_UNSTRUCTURED_REPO>.git"
    policyDir: "."
    secretType: "ssh"
    syncBranch: "master"
    syncRev: "HEAD"
    syncWait: 15
  policyController:
    enabled: true

Visualiza el estado de Anthos Config Management

Puedes ver el estado de Anthos Config Management si consultas el recurso ConfigManagementBinding.

kubectl get ConfigManagementBinding -o \
jsonpath="{range .items[*].status.bindingItemStatuses[*]}{'\n'}{['clusterID', 'configRef', 'conditions']}" \
--namespace=anthos-management-center \
--kubeconfig=ADMIN_OIDC_KUBECONFIG \
| grep CLUSTER-NAME

Reemplaza lo siguiente:

A continuación, se muestra un resultado de ejemplo con Anthos Config Management en buen estado:

target-user-cluster-1 {"name":"new-spec-f75y8","namespace":"anthos-management-center"} [{"lastTransitionTime":"2021-05-27T18:06:27Z","message":"","observedGeneration":1,"reason":"Healthy","status":"True","type":"Ready"}]

¿Qué sigue?