Guía de inicio rápido: Sincroniza los archivos de configuración de un repositorio
En este instructivo, crearás un clúster de la edición Enterprise de Google Kubernetes Engine (GKE) y usarás el Sincronizador de configuración para sincronizar los archivos de configuración del repositorio de muestras de varios repositorios.
Imagina que el equipo de cumplimiento es responsable de garantizar que todos los miembros de la organización cumplan con las reglas internas. Para aplicar estas reglas, el equipo de cumplimiento creó archivos de configuración que agregaron al repositorio de muestras. Cada clúster de tu organización debe sincronizarse con el repositorio y eres responsable de crear y sincronizar clústeres.
Antes de comenzar
- Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Asegúrate de tener los siguientes roles en el proyecto: GKE Hub Admin
Verifica los roles
-
En la consola de Google Cloud, ve a la página IAM.
Ir a IAM - Selecciona el proyecto.
-
En la columna Principal, busca la fila que tiene tu dirección de correo electrónico.
Si tu dirección de correo electrónico no está en esa columna, no tienes ningún rol.
- En la columna Función de la fila con la dirección de correo electrónico, verifica si la lista de roles incluye los roles necesarios.
Otorga los roles
-
En la consola de Google Cloud, ve a la página IAM.
Ir a IAM - Selecciona el proyecto.
- Haz clic en Grant access.
- En el campo Principales nuevas, ingresa tu dirección de correo electrónico.
- En la lista Seleccionar un rol, elige un rol.
- Para otorgar funciones adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.
- Haz clic en Guardar.
-
Crea un clúster
En esta sección, crearás un clúster que puedes usar en este instructivo. Aunque en una situación real es probable que administres varios clústeres, para simplificar este instructivo, solo debes crear y administrar un clúster.
Para crear un clúster, completa los siguientes pasos:
En la consola de Google Cloud, ve a la página Kubernetes Engine.
Si usas GKE por primera vez, haz clic en Habilitar para habilitar la API de Kubernetes Engine.
Haz clic en add_box Crear.
En la sección Autopilot, selecciona Configurar.
En la sección Conceptos básicos del clúster, ingresa
cs-cluster
en el campo Nombre y deja los demás campos con sus valores predeterminados recomendados.Haz clic en Crear. Se te dirigirá a la página Clústeres de Kubernetes. Tu clúster tardará varios minutos en crearse. Cuando veas una marca de verificación verde en la columna Estado junto a tu clúster, ya está lista.
Configura tu clúster
Ahora que creaste un clúster, puedes configurar el Sincronizador de configuración para que se sincronice con los archivos de configuración del directorio config-sync-quickstart
del repositorio de muestras.
Para configurar el Sincronizador de configuración en la consola de Google Cloud, completa los siguientes pasos:
En la consola de Google Cloud, habilita la API de GKE Hub.
En la consola de Google Cloud, ve al panel del Sincronizador de configuración.
En el cuadro Configuración del Sincronizador de configuración, haz clic en add Instalar el Sincronizador de configuración.
En la tabla Clústeres disponibles, selecciona
cs-cluster
y haz clic en Instalar el Sincronizador de configuración.Después de unos minutos, ve a la pestaña Configuración. Deberías ver Instalada en la columna Estado del Sincronizador de configuración de
cs-cluster
.En el panel del Sincronizador de configuración, haz clic en Implementar paquete.
En la tabla Selecciona clústeres para la implementación de paquetes, selecciona
cs-cluster
y, luego, haz clic en Continuar.Deja seleccionada la opción Paquete alojado en Git y haz clic en Continuar.
En el campo Package name, ingresa
sample-repository
.En el campo URL del repositorio, ingresa
https://github.com/GoogleCloudPlatform/anthos-config-management-samples
.En el campo Ruta de acceso, ingresa
config-sync-quickstart/multirepo/root
.Deje todos los otros campos con sus valores predeterminados.
Haz clic en Implementar paquete.
Después de unos minutos, deberías ver Sincronizado en la columna Estado de sincronización de
cs-cluster
.
Ahora que el Sincronizador de configuración está sincronizado con un repositorio, concilia de forma continua el estado de los clústeres con los archivos de configuración del repositorio.
Explora la instalación del Sincronizador de configuración
En las siguientes secciones, usarás Cloud Shell para explorar el repositorio desde el que se sincroniza cs-cluster
y confirmar que se implementen los archivos de configuración del repositorio.
Abre Cloud Shell
-
En la consola de Google Cloud, activa Cloud Shell.
En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.
-
Para usar los comandos de las siguientes secciones, configura el acceso a la línea de comandos de
kubectl
:gcloud container clusters get-credentials cs-cluster \ --zone ZONE \ --project PROJECT_ID
Reemplaza lo siguiente:
ZONE
: Es la zona en la que creaste el clúster.PROJECT_ID
: el ID de tu proyecto
Esta es la salida:
Fetching cluster endpoint and auth data. kubeconfig entry generated for cs-cluster.
Si se te solicita una autorización, haz clic en Autorizar.
Examina tu clúster y repositorio
El directorio config-sync-quickstart
incluye los archivos de configuración ClusterRole, CustomResourceDefinition, Rolebinding, namespace y RepoSync. También incluye opciones de configuración del operador de Prometheus para la supervisión.
Estos archivos de configuración se aplican en cuanto se configura el 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
. Puedes usar esta etiqueta para ver objetos administrados.
Para mostrar una lista de los espacios de nombres administrados por el Sincronizador de configuración, ejecuta el siguiente comando:
kubectl get ns -l app.kubernetes.io/managed-by=configmanagement.gke.io
El resultado es similar al siguiente:
NAME STATUS AGE
gamestore Active 58s
monitoring Active 58s
Puedes navegar a la carpeta /config-sync-quickstart/multirepo/ del repositorio en GitHub para explorar los archivos de configuración que generaron la creación de estos espacios de nombres.
Puedes examinar otros objetos, como ClusterRole, Reposyncs, CRD y Rolesbinding, del mismo modo.
Comprueba el estado de la sincronización
Cuando usas el Sincronizador de configuración, puedes usar la herramienta de línea de comandos de nomos
. Esta herramienta te proporciona funciones adicionales para el Sincronizador de configuración.
En esta sección, debes verificar si el Sincronizador de configuración sincronizó de forma correcta todos los archivos de configuración con tu clúster mediante el comando nomos status
:
nomos status
El resultado es similar al siguiente:
*gke_PROJECT_ID_ZONE_cs-cluster
--------------------
<root>:root-sync https://github.com/GoogleCloudPlatform/anthos-config-management-samples/config-sync-quickstart/multirepo/root@main
SYNCED @ 2023-02-03 16:58:42 +0000 UTC 1fbab5c90af9029b26451fec92e9900d8db23aee
Managed resources:
NAMESPACE NAME STATUS SOURCEHASH
clusterrole.rbac.authorization.k8s.io/namespace-reader Current 1fbab5c
clusterrole.rbac.authorization.k8s.io/prometheus-acm Current 1fbab5c
clusterrole.rbac.authorization.k8s.io/prometheus-operator Current 1fbab5c
clusterrole.rbac.authorization.k8s.io/webstore-admin Current 1fbab5c
clusterrolebinding.rbac.authorization.k8s.io/prometheus-acm Current 1fbab5c
clusterrolebinding.rbac.authorization.k8s.io/prometheus-operator Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/alertmanagerconfigs.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/alertmanagers.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/anvils.acme.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/podmonitors.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/probes.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/prometheuses.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/prometheusrules.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/servicemonitors.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/thanosrulers.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/webstores.marketplace.com Current 1fbab5c
namespace/gamestore Current 1fbab5c
namespace/monitoring Current 1fbab5c
gamestore reposync.configsync.gke.io/repo-sync Current 1fbab5c
gamestore rolebinding.rbac.authorization.k8s.io/gamestore-admin Current 1fbab5c
gamestore rolebinding.rbac.authorization.k8s.io/gamestore-webstore-admin Current 1fbab5c
monitoring deployment.apps/prometheus-operator Current 1fbab5c
monitoring prometheus.monitoring.coreos.com/acm Current 1fbab5c
monitoring service/prometheus-acm Current 1fbab5c
monitoring service/prometheus-operator Current 1fbab5c
monitoring serviceaccount/prometheus-acm Current 1fbab5c
monitoring serviceaccount/prometheus-operator Current 1fbab5c
monitoring servicemonitor.monitoring.coreos.com/acm-service Current 1fbab5c
--------------------
gamestore:repo-sync https://github.com/GoogleCloudPlatform/anthos-config-management-samples/config-sync-quickstart/multirepo/namespaces/gamestore@main
SYNCED @ 2023-02-03 16:58:51 +0000 UTC 1fbab5c90af9029b26451fec92e9900d8db23aee
Managed resources:
NAMESPACE NAME STATUS SOURCEHASH
gamestore configmap/store-inventory Current 1fbab5c
gamestore webstore.marketplace.com/gameplace Current 1fbab5c
En este resultado, puedes ver que cs-cluster
se sincroniza con éxito desde dos repositorios. Además, debido a que todos los recursos tienen un estado de Current
, el estado del recurso coincide con el estado que deseas.
Limpia
Ve al menú de GKE en la consola de Google Cloud.
Junto a
cs-cluster
, haz clic en more_vert Acciones y, luego, en delete Borrar.Cuando se te solicite confirmación, haz clic en Borrar de nuevo.
¿Qué sigue?
- Obtén más información sobre cómo validar de los archivos de configuración.