En esta guía de inicio rápido, se muestra cómo usar el Sincronizador de configuración para implementar un enfoque de GitOps para administrar tus clústeres de Google Kubernetes Engine. Con un flujo de trabajo de GitOps, usas un repositorio de Git como la única fuente de información para las configuraciones de tu clúster.
Si usas el Sincronizador de configuración, obtendrás los siguientes beneficios:
- Aplicar coherencia: Ayuda a garantizar que todos tus clústeres tengan la misma configuración, lo que reduce el riesgo de desvío de configuración.
- Mejora la seguridad: Administra y audita de forma centralizada las configuraciones de tus clústeres, lo que facilita la aplicación de políticas de seguridad.
- Aumenta la velocidad: Automatiza la implementación de los cambios de configuración, lo que te permite implementar cambios más rápido y de forma más confiable.
En este instructivo, crearás un clúster de GKE y configurarás el Sincronizador de configuración para sincronizar archivos de configuración desde un repositorio de muestra. En este instructivo, se explica cómo funciona el Sincronizador de configuración y se te brinda experiencia en el uso de esta herramienta para administrar tus clústeres de manera coherente y automatizada.
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Make sure that you have the following role or roles on the project: Kubernetes Engine Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Ir a IAM - Selecciona el proyecto.
- Haz clic en Otorgar acceso.
-
En el campo Principales nuevas, ingresa tu identificador de usuario. Esta suele ser la dirección de correo electrónico de una Cuenta de Google.
- En la lista Seleccionar un rol, elige uno.
- Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega uno más.
- Haz clic en Guardar.
Habilita la API de Google Kubernetes Engine.
En la consola de Google Cloud , ve a la página 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. Deja todos los demás campos con sus valores predeterminados recomendados.Haz clic en Crear. Se te redireccionará a la página Clústeres de Kubernetes. El clúster tardará varios minutos en crearse. Cuando veas una marca de verificación verde en la columna Estado junto al clúster, estará listo.
- En la Google Cloud consola, ve a la página Config en la sección Features.
- Haz clic en add Instalar Config Sync.
- Selecciona la versión de Sincronizador de configuración que deseas usar.
- En Opciones de instalación, selecciona Instalar el Sincronizador de configuración en clústeres individuales.
- En la tabla Clústeres disponibles, selecciona
cs-cluster
y haz clic en Instalar el Sincronizador de configuración. En la pestaña Configuración, deberías ver el estado decs-cluster
como Habilitado después de unos minutos. - En el panel del Sincronizador de configuración, haz clic en Implementar paquete de clúster.
- 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, luego, haz clic en Continuar.
- En el campo Nombre del paquete, 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
. - Deja todos los otros campos con sus valores predeterminados.
Haz clic en Deploy Package.
Después de unos minutos, deberías ver Sincronizado en la columna Estado de sincronización para
cs-cluster
.- Creación de espacios de nombres: Los archivos como
namespace-gamestore.yaml
crean los espacios de nombres. - Recursos con alcance de clúster: Los archivos que afectan a todo el clúster incluyen recursos como objetos
ClusterRole
que agregan roles en todo el clúster que otorgan permisos. - Conexión de repositorios de espacio de nombres: El archivo de claves en esta configuración de varios repositorios es el archivo
reposync-gamestore.yaml
. Este objetoRepoSync
le indica a Sincronizador de configuración que sincronice las configuraciones para el espacio de nombresgamestore
desde una ruta diferente. En este ejemplo, el objetoRepoSync
apunta al directorioconfig-sync-quickstart/multirepo/ namespaces/gamestore
dentro del mismo repositorio, pero, en una situación real, podrías apuntar a un repositorio de Git diferente. Ve al menú de GKE en la Google Cloud consola.
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.
- Obtén más información sobre cómo validar de los archivos de configuración.
Crea un clúster
En esta sección, crearás un clúster que podrás 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:
Configura tu clúster
Ahora que tienes un clúster, puedes configurar Sincronizador de configuración para sincronizar archivos de configuración desde un repositorio de Git.
Para configurar el Sincronizador de configuración en la consola de Google Cloud , completa los siguientes pasos:
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.
Ver detalles del paquete
Para ver los objetos administrados por el Sincronizador de configuración, ve a la pestaña Packages y haz clic en
cs-cluster
. La página de detalles del paquete proporciona una descripción general de todos los recursos sincronizados, incluido el tipo de recurso y el espacio de nombres con el que se sincronizó.(Opcional) Explora el repositorio de ejemplo
Las configuraciones que se aplican a tu clúster se definen en el repositorio
/config-sync-quickstart/multirepo/
. En este ejemplo, se muestra una configuración de varios repositorios en la que los parámetros de configuración a nivel de cluster-admin, representados por el repositorioroot
, se separan de los parámetros de configuración a nivel del espacio de nombres, representados por el repositorionamespaces
. En este ejemplo, estas configuraciones se dividen en diferentes carpetas. En una situación real, podrías almacenar configuraciones en dos repositorios diferentes con distintos permisos de acceso.A un nivel general, los repositorios raíz o a nivel del clúster suelen ser administrados por un administrador central y contienen recursos, políticas y configuraciones de espacios de nombres en todo el clúster. Por lo general, los repositorios a nivel del espacio de nombres contienen configuraciones específicas para espacios de nombres individuales y, a menudo, los administran los equipos de aplicaciones.
Estos son algunos de los tipos de archivos clave que puedes almacenar en un repositorio raíz:
El repositorio de espacios de nombres contiene configuraciones específicas de la aplicación para el espacio de nombres
gamestore
. Por ejemplo, el archivoconfigmap-inventory.yaml
contiene datos de inventario para la aplicacióngamestore
. Este tipo de configuración de GitOps permite que los equipos de aplicaciones tengan más autonomía sobre sus propias implementaciones y recursos con alcance de espacio de nombres sin necesidad de modificar el repositorio raíz central.Limpia
¿Qué sigue?
-