En esta guía de inicio rápido, se muestra cómo comenzar a usar el Sincronizador de configuración en un clúster nuevo con el repositorio de ejemplo foo-corp para iniciar un clúster con un conjunto de archivos de configuración. En esta guía, no necesitas acceso de escritura al repositorio. Imagina que un equipo de cumplimiento de tu organización es responsable de crear los archivos de configuración y que cada clúster debe sincronizarse con el repositorio.
Después de completar esta guía de inicio rápido, podrás seguir una guía de inicio rápido sobre cómo escribir, probar y sincronizar archivos de configuración.
Antes de comenzar
Mediante los siguientes comandos, configura el comando de
kubectl
para autenticarte en el clúster y crea una RoleBinding a fin de convertirte en administrador del clúster. Usa el nombre del clúster donde veas[MY-CLUSTER]
y la dirección de correo electrónico de la cuenta de Google Cloud donde veas [USER-ACCOUNT]. Según cómo configuraste el comando degcloud
en el sistema local, es posible que debas 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]
Instala el comando
nomos
en el sistema local.Instala el operador del Sincronizador de configuración en el clúster que acabas de crear.
Configura tu clúster
Crea un archivo config-management.yaml
y copia el siguiente archivo YAML en él.
Debido a que el repositorio es legible en todo el mundo, secretType
se establece en none
. Para obtener una explicación de los campos, consulta Configuración del repositorio de Git.
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 se ejecuta de forma correcta, Kubernetes actualizará el operador del Sincronizador de configuración en tu clúster para comenzar a sincronizar su configuración desde el repositorio.
Para verificar que el operador del Sincronizador de configuración esté en ejecución, enumera todos los Pods que se ejecutan en el espacio de nombres config-management-system
:
kubectl get pods -n config-management-system
Resultado:
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
Examina tu clúster y repositorio
El repositorio foo-corp
incluye archivos de configuración en los directorios cluster/
y namespaces/
. Estos archivos de configuración se aplican en cuanto se configure el operador del Sincronizador de configuración para leer desde el repositorio.
Todos los objetos administrados por el Sincronizador de configuración tienen la etiqueta app.kubernetes.io/managed-by
configurada en configmanagement.gke.io
.
Enumera los espacios de nombres que administra el Sincronizador de configuración:
kubectl get ns -l app.kubernetes.io/managed-by=configmanagement.gke.io
Resultado:
NAME STATUS AGE
audit Active 4m
shipping-dev Active 4m
shipping-prod Active 4m
shipping-staging Active 4m
Examina los archivos de configuración que generaron la creación de estos espacios de nombres, como namespaces/audit/namespace.yaml
y namespaces/online/shipping-app-backend/shipping-dev/namespace.yaml
.
Enumera las ClusterRoles que administra el Sincronizador de configuración:
kubectl get clusterroles -l app.kubernetes.io/managed-by=configmanagement.gke.io
Resultado:
NAME AGE
namespace-reader 6m52s
pod-creator 6m52s
Examina los archivos de configuración de ClusterRole que declaran lo siguiente:
cluster/namespace-reader-clusterrole.yaml
cluster/pod-creator-clusterrole.yaml
Puedes examinar otros objetos, como Roles y PodSecurityPolicies, de la misma manera.
Intenta modificar de forma manual un objeto administrado
Si modificas de forma manual un objeto de Kubernetes administrado por el Sincronizador de configuración, la configuración de ese objeto se actualiza de forma automática para coincidir con el archivo de configuración del objeto en tu repositorio. Para probar esto, borra el espacio de nombres shipping-dev
.
kubectl delete namespace shipping-dev
Si verificas de inmediato, es posible que falte el espacio de nombres, pero en unos segundos volverá a aparecer: Por ejemplo:
kubectl get ns shipping-dev
Resultado:
Error from server (NotFound): namespaces "shipping-dev" not found
Después de unos segundos:
kubectl get ns shipping-dev
Resultado:
NAME STATUS AGE
shipping-dev Active 3s
Realiza una limpieza
Después de completar los ejercicios de este tema, puedes borrar el clúster que usaste para las pruebas.
¿Qué sigue?
- Revisa la guía de inicio rápido avanzada sobre cómo escribir, probar y sincronizar archivos de configuración.
- Obtén más información sobre cómo escribir archivos de configuración.
- Obtén más información sobre cómo validar de los archivos de configuración.