Sincroniza con un repositorio de solo lectura

Esta guía de inicio rápido le muestra cómo comenzar con Anthos Config Management en un nuevo clúster, utilizando el repo de ejemplo de foo-corp para iniciar un clúster con un conjunto de configuraciones. En esta guía de inicio rápido, no necesita acceso de escritura al repositorio. Imagine que un equipo de cumplimiento de su organización es responsable de crear las configuraciones y que cada clúster debe sincronizarse con el repositorio.

Después de completar esta guía de inicio rápido, puede seguir una guía de inicio rápido avanzada sobre escribir, probar y sincronizar configuraciones.

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. En la página de selección de proyectos de Cloud Console, selecciona o crea un proyecto de Cloud.

    Ir a la página de selección de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Obtén información sobre cómo confirmar que tienes habilitada la facturación para tu proyecto.

  4. Habilita la API Anthos.

    Habilita la API

  5. Instala e inicializa el SDK de Cloud.

Requisitos

Anthos Config Management requiere una autorización activa de Anthos. Para obtener más información, consulte Precios para Anthos.

Configuración de clúster

  • Usuarios de GKE:

    1. Crea un clúster.

    2. Configure el comando kubectl para autenticarse en el clúster y cree una RoleBinding para convertirse en un administrador del clúster, utilizando los siguientes comandos. Use su nombre de clúster donde vea [MY-CLUSTER], y use la dirección de correo electrónico de su cuenta de Google Cloud donde vea [USER-ACCOUNT]. Dependiendo de cómo configuró el comando gcloud en su sistema local, es posible que deba agregar los campos --project y --zone.

      gcloud container clusters get-credentials [MY-CLUSTER]
      
      kubectl create clusterrolebinding cluster-admin-binding \
      --clusterrole cluster-admin --user [USER_ACCOUNT]
      
  • Usuarios de Anthos GKE on-prem:

  • Todos los usuarios:

    1. Instale el comando nomos en su sistema local.

    2. Instale el operador de Config Management en el clúster que acaba de crear.

    3. Registre su clúster en un entorno de Anthos usando Connect.

Configura tu clúster

Cree un archivo config-management.yaml y copie en este el YAML que se muestra a continuación. Consulte las instrucciones de instalación para obtener una explicación de los campos. Debido a que el repositorio es legible en todo el mundo, secretType se establece en none.

apiVersion: configmanagement.gke.io/v1
kind: ConfigManagement
metadata:
  name: config-management
spec:
  # clusterName is required and must be unique among all managed clusters
  clusterName: my-cluster
  git:
    syncRepo: https://github.com/GoogleCloudPlatform/csp-config-management/
    syncBranch: 1.0.0
    secretType: none
    policyDir: "foo-corp"

Aplica la configuración a tu clúster:

kubectl apply -f config-management.yaml

Si el comando tiene éxito, Kubernetes actualiza el Operador de Config Management en tu clúster para comenzar a sincronizar la configuración de tu clúster desde el repositorio. Para verificar que el operador de Config Management se está ejecutando, enumere todos los pods que se ejecutan en el espacio de nombres config-management-system:

kubectl get pods -n config-management-system
NAME                                   READY     STATUS    RESTARTS   AGE
git-importer-5f8bdb59bd-7nn5m          2/2       Running   0          2m
monitor-58c48fbc66-ggrmd               1/1       Running   0          2m
syncer-7bbfd7686b-dxb45                1/1       Running   0          2m

Examine su clúster y repositorio

El repositorio foo-corp incluye configuraciones en los directorios cluster/ y namespaces/. Estas configuraciones se aplican tan pronto como el Operador de Config Management se configure para leer del repositorio.

Todos los objetos administrados por Anthos Config Management tienen la etiqueta app.kubernetes.io/managed-by establecida en configmanagement.gke.io.

Lista de espacios de nombres administrados por Anthos Config Management:

kubectl get ns -l app.kubernetes.io/managed-by=configmanagement.gke.io
NAME               STATUS   AGE
audit              Active   4m
shipping-dev       Active   4m
shipping-prod      Active   4m
shipping-staging   Active   4m

Examine las configuraciones que causaron la creación de estos espacios de nombres, como namespaces/audit/namespace.yaml y namespaces/online/shipping-app-backend/shipping-dev/namespace.yaml.

Lista de ClusterRoles administrados por Anthos Config Management:

kubectl get clusterroles -l app.kubernetes.io/managed-by=configmanagement.gke.io
NAME               AGE
namespace-reader   6m52s
pod-creator        6m52s

Examine las configuraciones de ClusterRole declarando estas:

  • cluster/namespace-reader-clusterrole.yaml
  • cluster/pod-creator-clusterrole.yaml

Puede examinar otros objetos, como Funciones y PodSecurityPolicies, de la misma manera.

Intente modificar manualmente un objeto administrado

Si modificas manualmente un objeto de Kubernetes administrado por Anthos Config Management, la configuración de ese objeto se actualiza automáticamente para que coincida con la configuración del objeto en tu repositorio. Para probar esto, elimina el espacio de nombres shipping-dev.

kubectl delete namespace shipping-dev

Si verifica de inmediato, puede faltar el espacio de nombres, pero dentro de unos segundos, vuelve a existir:

kubectl get ns shipping-dev
Error from server (NotFound): namespaces "shipping-dev" not found

Segundos más tarde:

kubectl get ns shipping-dev
NAME           STATUS   AGE
shipping-dev   Active   3s

Limpia

Después de terminar los ejercicios de este tema, puede limpiar eliminando el clúster que utilizó para las pruebas.

¿Qué sigue?