Con Config Sync, puedes gestionar tus recursos de Kubernetes sincronizando configuraciones desde una única fuente de información fiable, como un repositorio de Git, una imagen OCI o un gráfico de Helm. Si las instrucciones de instalación predeterminadas no se ajustan a tus necesidades, es posible que tengas que personalizar la instalación de Config Sync.
En esta página se explica cómo realizar una instalación y configuración avanzadas de Config Sync. El proceso de instalación incluye lo siguiente:
- Instalar Config Sync en clústeres individuales con laGoogle Cloud consola, la CLI de Google Cloud o Terraform.
- Configurar el repositorio raíz, incluido el tipo de origen, el formato y la autenticación.
- Verificar que Config Sync se ha instalado y configurado correctamente.
Limitaciones
Config Sync no admite la configuración de helm
como tipo de origen
con la consola o la CLI de Google Cloud. Google Cloud Puedes configurar tu objeto RootSync
o RepoSync
para que se sincronice desde un repositorio de Helm mediante la API de Kubernetes o declararlo en otra fuente de información veraz.
Para obtener más información, consulta la configuración del repositorio de Helm.
Antes de empezar
Antes de instalar Config Sync, prepara tu fuente de información veraz y un clúster adecuado.
Conceder acceso de Config Sync a tu fuente de información veraz
Para sincronizar la configuración de una fuente de información veraz con tus clústeres, Config Sync necesita acceso de solo lectura a tu repositorio. Para autorizar a Config Sync a leer tus configuraciones, sigue estos pasos:
Crea o ten acceso a una fuente fiable que contenga los archivos de configuración que quieras que Config Sync sincronice con tus clústeres. Para obtener más información, consulta los siguientes recursos:
- Añadir configuraciones a una fuente de información fiable: información conceptual sobre las configuraciones.
- Prácticas recomendadas de GitOps: consejos y prácticas recomendadas generales para organizar y gestionar tu repositorio.
- Usar un repositorio sin estructurar: recomendaciones para usar y organizar un repositorio sin estructurar.
Si tu fuente de información es pública, no tienes que hacer nada más. Config Sync no requiere permisos adicionales.
Si tu fuente de información es privada, sigue las instrucciones de una de las páginas siguientes:
Revisar los requisitos de los clústeres
Antes de crear un clúster, consulta los requisitos de los clústeres.
Instalar Config Sync
Cuando instalas Config Sync mediante la consola o la CLI de Google Cloud, Config Sync crea automáticamente un objeto RootSync llamado root-sync
. Google Cloud Puedes usar comandos kubectl
para modificar root-sync
y añadir configuraciones de Config Sync. Para obtener más información, consulta Configurar Config Sync con comandos de kubectl
.
Consola
Instalar Config Sync
Para instalar Config Sync, todos los clústeres deben estar registrados en una flota. Cuando instalas Config Sync en la consola, al seleccionar clústeres individuales, estos se registran automáticamente en tu flota. Google Cloud
- En la Google Cloud consola, ve a la página Configuración de la sección Funciones.
- Haz clic en add Instalar Config Sync.
- Selecciona la versión de Config Sync que quieras usar.
- En Opciones de instalación, selecciona una de las siguientes opciones:
- Instalar Config Sync en toda la flota (opción recomendada): Config Sync se instala en todos los clústeres de la flota.
- Instalar Config Sync en clústeres concretos: Config Sync se instala en los clústeres que selecciones. Los clústeres seleccionados se registran automáticamente en tu flota.
- Si vas a instalar Config Sync en clústeres concretos, en la tabla Available clusters (Clústeres disponibles), selecciona los clústeres en los que quieras instalar Config Sync.
- Haz clic en Instalar Config Sync. En la pestaña Configuración, al cabo de unos minutos, debería aparecer el valor Habilitado en la columna Estado de los clústeres de tu flota.
Desplegar un paquete
Una vez que hayas registrado tus clústeres en una flota e instalado Config Sync, puedes configurar Config Sync para desplegar un paquete en un clúster desde una fuente de información veraz. Puedes desplegar el mismo paquete en varios clústeres o desplegar diferentes paquetes en distintos clústeres. Puede editar un paquete después de implementarlo, excepto algunos ajustes, como el nombre del paquete y el tipo de sincronización. Para obtener más información, consulta Gestionar paquetes.
Para implementar un paquete, sigue estos pasos:
En la Google Cloud consola, ve al panel de control Config Sync.
Haz clic en Desplegar paquete.
En la tabla Seleccionar clústeres para la implementación de paquetes, seleccione el clúster en el que quiera implementar un paquete y, a continuación, haga clic en Continuar.
Seleccione Paquete alojado en Git o Paquete alojado en OCI como tipo de fuente y, a continuación, haga clic en Continuar.
En la sección Detalles del paquete, introduce un Nombre del paquete, que identifica el objeto RootSync o RepoSync.
En el campo Tipo de sincronización, elige Sincronización con ámbito de clúster o Sincronización con ámbito de espacio de nombres como tipo de sincronización.
La sincronización con ámbito de clúster crea un objeto RootSync, mientras que la sincronización con ámbito de espacio de nombres crea un objeto RepoSync. Para obtener más información sobre estos objetos, consulta Arquitectura de Config Sync.
En la sección Origen, haz lo siguiente:
En el caso de las fuentes alojadas en un repositorio de Git, introduce los siguientes campos:
- Introduce la URL del repositorio de Git que estés usando como fuente de información principal en el campo URL del repositorio.
- Opcional: Actualiza el campo Revisión para comprobar si no estás usando el valor predeterminado
HEAD
. - Opcional: Actualiza el campo Ruta si no quieres sincronizar desde el repositorio raíz.
- Opcional: Actualiza el campo Rama si no usas la rama
main
predeterminada.
En el caso de las fuentes alojadas en una imagen de OCI, introduce los siguientes campos:
- Introduce la URL de la imagen OCI que estés usando como fuente de información principal en el campo Imagen.
- Introduce la ruta del directorio desde el que se va a sincronizar, relativa al directorio raíz, en el campo Directorio.
(Opcional): Despliega la sección Configuración avanzada para completar lo siguiente:
Selecciona un Tipo de autenticación. Config Sync necesita acceso de solo lectura a tu fuente de información veraz para leer los archivos de configuración de la fuente y aplicarlos a tus clústeres. A menos que tu fuente no requiera autenticación, como un repositorio público, asegúrate de conceder a Config Sync acceso de solo lectura a tu repositorio de Git, imagen OCI o gráfico de Helm (solo en la CLI de gcloud). Elige el mismo tipo de autenticación que configuraste al instalar Config Sync:
- Ninguna: no se usa ninguna autenticación.
- SSH autentica mediante un par de claves SSH.
- Cookiefile: autentica mediante un
cookiefile
. - Token: autentícate con un token de acceso o una contraseña.
- Repositorio de Google Cloud: usa una cuenta de servicio de Google para acceder a un repositorio de Cloud Source Repositories. Selecciona esta opción solo si la federación de identidades de carga de trabajo para GKE no está habilitada en tu clúster.
- Workload Identity: usa una cuenta de servicio de Google para acceder a un repositorio de Cloud Source Repositories.
Introduce un número en segundos para definir el Tiempo de espera de sincronización, que determina cuánto tiempo espera Config Sync entre los intentos de extraer datos de la fuente de información veraz.
Introduce una URL de proxy de Git para el proxy HTTPS que se usará al comunicarse con la fuente de información principal.
Elige Jerarquía para cambiar el Formato de origen.
En la mayoría de los casos, se recomienda usar el valor predeterminado Sin estructura, ya que te permite organizar tu fuente de información como quieras.
Haz clic en Desplegar paquete.
Se te redirigirá a la página Paquetes de Config Sync. Al cabo de unos minutos, debería ver el estado Sincronizado en la columna Estado de sincronización del clúster que ha configurado.
gcloud
Antes de continuar, asegúrate de haber registrado tus clústeres en una flota.
Habilita la función de flota
ConfigManagement
:gcloud beta container fleet config-management enable
Para preparar la configuración, crea un archivo llamado
apply-spec.yaml
y copia en él el siguiente archivo YAML.Puedes definir todos los campos
spec.configSync
opcionales que necesites al crear el manifiesto y, más adelante, usar los comandoskubectl
para la configuración. También puedes definir el campospec.configSync.enabled
comotrue
y omitir los campos opcionales. Después, puedes usar comandoskubectl
para crear objetos RootSync adicionales o RepoSyncs que puedes gestionar por completo con comandoskubectl
más adelante.# apply-spec.yaml applySpecVersion: 1 spec: configSync: enabled: true # If you don't have a source of truth yet, omit the # following fields. You can configure them later. sourceType: SOURCE_TYPE sourceFormat: FORMAT syncRepo: REPO syncRev: REVISION secretType: SECRET_TYPE gcpServiceAccountEmail: EMAIL metricsGcpServiceAccountEmail: METRICS_EMAIL policyDir: DIRECTORY preventDrift: false
Haz los cambios siguientes:
SOURCE_TYPE
: añadegit
para sincronizar desde un repositorio de Git,oci
para sincronizar desde una imagen OCI ohelm
para sincronizar desde un gráfico de Helm. Si no se especifica ningún valor, se usagit
de forma predeterminada.FORMAT
: añadeunstructured
para usar un repositorio no estructurado o añadehierarchy
para usar un repositorio jerárquico. En estos valores se distingue entre mayúsculas y minúsculas. Este campo es opcional y su valor predeterminado eshierarchy
. Te recomendamos que añadasunstructured
, ya que este formato te permite organizar tus configuraciones de la forma que te resulte más cómoda.REPO
: añade la URL de la fuente de información veraz. Las URLs de los repositorios de Git y Helm usan el protocolo HTTPS o SSH. Por ejemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
. Si tienes previsto usar SSH comosecretType
, introduce tu URL con el protocolo SSH. Este campo es obligatorio y, si no introduces ningún protocolo, la URL se tratará como una URL HTTPS.Las URLs de OCI tienen el siguiente formato:
LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. De forma predeterminada, la imagen se extrae de la etiquetalatest
, pero puedes extraer imágenes conTAG
oDIGEST
. EspecificaTAG
oDIGEST
enPACKAGE_NAME
:- Para tirar por
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Para tirar por
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Para tirar por
REVISION
: la revisión de Git (etiqueta o hash) o el nombre de la rama desde la que se sincronizará. Cuando se utilice un hash, debe ser un hash completo, no una forma abreviada.SECRET_TYPE
: una de las siguientessecretTypes
:git
none
: no se usa ninguna autenticación.ssh
: usa un par de claves SSH.cookiefile
: usa uncookiefile
.token
: usa un token.gcpserviceaccount
: usa una cuenta de servicio de Google para acceder a un repositorio de Cloud Source Repositories o Secure Source Manager. Si seleccionas este tipo de autenticación, debes crear un enlace de política de IAM después de terminar de configurar Config Sync. Para obtener más información, consulta la pestaña Cuenta de servicio de Google de la sección Conceder acceso a Git a Config Sync con una cuenta de servicio de Google.gcenode
: usa una cuenta de servicio de Google para acceder a Cloud Source Repositories. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.githubapp
: usa una aplicación de GitHub para autenticarte en un repositorio de GitHub.
Para obtener más información sobre estos tipos de autenticación, consulta el artículo Conceder acceso de Config Sync a Git.
oci
none
: no usar autenticacióngcenode
: usa la cuenta de servicio predeterminada de Compute Engine para acceder a una imagen de Artifact Registry. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.gcpserviceaccount
: usa una cuenta de servicio de Google para acceder a una imagen.
Helm
token
: usa un token.gcenode
: usa la cuenta de servicio predeterminada de Compute Engine para acceder a una imagen de Artifact Registry. Selecciona esta opción solo si Workload Identity Federation para GKE no está habilitado en tu clúster.gcpserviceaccount
: usa una cuenta de servicio de Google para acceder a una imagen.
EMAIL
: si has añadidogcpserviceaccount
como tusecretType
, añade la dirección de correo de tu cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.METRICS_EMAIL
: el correo electrónico de la Google Cloud cuenta de servicio (GSA) que se usa para exportar métricas de Config Sync a Cloud Monitoring. La cuenta de servicio de Google debe tener el rol de gestión de identidades y accesos Editor de métricas de monitorización (roles/monitoring.metricWriter
). La cuenta de servicio de Kubernetesdefault
del espacio de nombresconfig-management-monitoring
debe estar vinculada a la cuenta de servicio de Google.DIRECTORY
: la ruta del directorio desde el que se va a sincronizar, relativa a la raíz del repositorio de Git. Todos los subdirectorios del directorio que especifique se incluirán y se sincronizarán con el clúster. El valor predeterminado es el directorio raíz del repositorio.
Para ver una lista completa de los campos que puedes añadir al campo
spec
, consulta gcloud fields.Aplica el archivo
apply-spec.yaml
. Si usas un manifiesto, debes aplicar el archivo al clúster que quieras configurar con los ajustes que has obtenido en el comando anterior:gcloud beta container fleet config-management apply \ --membership=MEMBERSHIP_NAME \ --config=CONFIG_YAML_PATH \ --project=PROJECT_ID
Haz los cambios siguientes:
MEMBERSHIP_NAME
: el nombre de la pertenencia a la flota que elegiste al registrar tu clúster. Puedes encontrar el nombre congcloud container fleet memberships list
.CONFIG_YAML_PATH
: la ruta a tu archivoapply-spec.yaml
.PROJECT_ID
: tu ID de proyecto.
Terraform
Para cada clúster en el que quieras configurar Config Sync, aplica un bloque de recursos google_gkehub_feature_membership
que contenga bloques configmanagement
y config_sync
, como en el siguiente ejemplo:
git
Haz los cambios siguientes:
REPO
: la URL del repositorio de Git que contiene los archivos de configuración.BRANCH
: la rama del repositorio, por ejemplo,main
.DIRECTORY
: la ruta del repositorio de Git que representa el nivel superior del repositorio que quieres sincronizar.SECRET
: el tipo de autenticación secreta.
oci
Haz los cambios siguientes:
REPO
: la URL del repositorio de imágenes de OCI que contiene los archivos de configuración.DIRECTORY
: la ruta absoluta del directorio que contiene los recursos que quieres sincronizar. Para usar el directorio raíz, deje este campo en blanco.SECRET
: el tipo de autenticación secreta.
Repite este proceso con cada clúster que quieras sincronizar.
Para obtener más información sobre el uso de Terraform, consulta Compatibilidad de Terraform con Config Sync.
Después de configurar el repositorio raíz, puedes configurar la sincronización desde varios repositorios, incluidos otros repositorios raíz y repositorios de espacios de nombres. Los repositorios de espacios de nombres son útiles si quieres que un repositorio que contenga configuraciones de ámbito de espacio de nombres se sincronice con un espacio de nombres concreto en todos los clústeres.
Verificar la instalación
Después de instalar y configurar Config Sync, puedes verificar que la instalación se haya completado correctamente.
gcloud
Ejecuta el siguiente comando:
nomos status
Si la instalación se ha realizado correctamente, el estado será SYNCED
o PENDING
.
Para obtener más información sobre la información proporcionada por nomos status
, incluidos los errores notificados, consulta Comprobar el estado de Config Sync en la documentación de la herramienta de línea de comandos nomos
.
consola
Este agente debe seguir estos pasos:
- En la Google Cloud consola, ve a la página Configuración de la sección Funciones.
- En la pestaña Paquetes, consulte la columna Estado de sincronización de la tabla de clústeres. Si Config Sync se ha instalado correctamente, su estado será Instalado. Una fuente de información configurada correctamente tiene el estado Sincronizado.
Siguientes pasos
- Consulta cómo actualizar Config Sync.
- Consulta más información sobre los comandos de
gcloud
para configurar Config Sync. - Descubre cómo configurar la sincronización desde varios repositorios.
- Usa el comando
nomos
. - Consulta la introducción a la solución de problemas de Config Sync.
- Consulta cómo desinstalar Config Sync.
- Consulta los permisos de sincronización de configuración predeterminados.