Con el Sincronizador de configuración, puedes administrar tus recursos de Kubernetes sincronizando parámetros de configuración desde una fuente de información central, como un repositorio de Git, una imagen de OCI o un gráfico de Helm. Si las instrucciones de instalación predeterminadas no satisfacen tus necesidades, es posible que debas personalizar la instalación del Sincronizador de configuración.
En esta página, se muestra cómo realizar una instalación y configuración avanzadas del Sincronizador de configuración. El proceso de instalación incluye lo siguiente:
- Instalar Config Sync en clústeres individuales con la consola deGoogle Cloud , Google Cloud CLI o Terraform
- Configurar tu repositorio raíz, incluidos el tipo de fuente, el formato y la autenticación
- Verificar que la instalación y configuración del Sincronizador de configuración se hayan realizado correctamente
Limitaciones
El Sincronizador de configuración no admite la configuración de helm
como el tipo de fuente con la consola de Google Cloud o Google Cloud CLI. Puedes configurar tu objeto RootSync
o RepoSync
para que se sincronice desde un repositorio de Helm con la API de Kubernetes, o declararlo en otra fuente de verdad.
Consulta Configuración del repositorio de Helm para obtener más información.
Antes de comenzar
Antes de instalar el Sincronizador de configuración, prepara tu fuente de información y un clúster adecuado.
Otorga acceso al Sincronizador de configuración a tu fuente de información
Para sincronizar la configuración desde una fuente de información a tus clústeres, el Sincronizador de configuración requiere acceso de solo lectura a tu repositorio. Para autorizar al Sincronizador de configuración a leer tus configuraciones, completa los siguientes pasos:
Crea una fuente de información que contenga los archivos de configuración con los que deseas que se sincronice el Sincronizador de configuración en tus clústeres, o bien accede a una. Para obtener más información, consulta los siguientes recursos:
- Agrega parámetros de configuración a una fuente de información: Información conceptual sobre los parámetros de configuración.
- Prácticas recomendadas de GitOps: Sugerencias y prácticas recomendadas generales para organizar y administrar tu repositorio
- Usa un repositorio no estructurado: Recomendaciones para usar y organizar un repositorio no estructurado
Si tu fuente de verdad es pública, no es necesario que realices ninguna otra acción. El Sincronizador de configuración no requiere permisos adicionales.
Si tu fuente de verdad es privada, completa las instrucciones en una de las siguientes páginas:
Revisa los requisitos del clúster
Antes de crear un clúster, revisa los requisitos del clúster.
Instalar el Sincronizador de configuración
Cuando instalas el Sincronizador de configuración con la consola de Google Cloud o Google Cloud CLI, el Sincronizador de configuración crea automáticamente un objeto RootSync llamadoroot-sync
. Puedes usar los comandos de kubectl
para modificar root-sync
y agregar configuraciones adicionales del Sincronizador de configuración. Para obtener más información, consulta Configura Config Sync con comandos de kubectl
.
Console
Instalar el Sincronizador de configuración
Para instalar Sincronizador de configuración, todos los clústeres deben estar registrados en una flota. Cuando instalas el Sincronizador de configuración en la Google Cloud consola, la selección de clústeres individuales los registra automáticamente en tu flota.
- 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 una de las siguientes opciones:
- Instalar el Sincronizador de configuración en toda la flota (recomendado): El Sincronizador de configuración se instala en todos los clústeres de la flota.
- Instalar Config Sync en clústeres individuales: Sincronizador de configuración se instala en los clústeres que selecciones. Los clústeres seleccionados se registran automáticamente en tu flota.
- Si instalas el Sincronizador de configuración en clústeres individuales, en la tabla Clústeres disponibles, selecciona los clústeres en los que deseas instalar el Sincronizador de configuración.
- Haz clic en Instalar el Sincronizador de configuración. En la pestaña Configuración, después de unos minutos, deberías ver Habilitado en la columna Estado para los clústeres de tu flota.
Implementa un paquete
Después de registrar tus clústeres en una flota y de instalar el Sincronizador de configuración, puedes configurarlo para implementar un paquete en un clúster desde una fuente de información. Puedes implementar el mismo paquete en varios clústeres o implementar paquetes diferentes en clústeres distintos. Puedes editar un paquete después de implementarlo, excepto algunos parámetros de configuración, como el nombre del paquete y el tipo de sincronización. Para obtener más información, consulta Administra paquetes.
Para implementar un paquete, completa los siguientes pasos:
En la consola de Google Cloud , ve al panel de Config Sync.
Haz clic en Deploy Package.
En la tabla Selecciona clústeres para la implementación de paquetes, selecciona el clúster en el que deseas implementar un paquete y, luego, haz clic en Continuar.
Selecciona Paquete alojado en Git o Paquete alojado en OCI como tu tipo de fuente y, luego, haz clic en Continuar.
En la sección Detalles del paquete, ingresa un Nombre del paquete, que identifica el objeto RootSync o RepoSync.
En el campo Tipo de sincronización, elige Sincronización centrada en el clúster o Sincronización centrada en el espacio de nombres como el tipo de sincronización.
La sincronización con alcance de clúster crea un objeto RootSync, y la sincronización con alcance de espacio de nombres crea un objeto RepoSync. Para obtener más información sobre estos objetos, consulta Arquitectura de Sincronizador de configuración.
En la sección Fuente, completa lo siguiente:
Para las fuentes alojadas en un repositorio de Git, ingresa los siguientes campos:
- Ingresa la URL del repositorio de Git que usas como fuente de información como la URL del repositorio.
- Opcional: Actualiza el campo Revisión para confirmar si no usas el
HEAD
predeterminado. - Opcional: Actualiza el campo Ruta de acceso si no deseas sincronizar desde el repositorio raíz.
- Opcional: Actualiza el campo Rama si no usas la rama
main
predeterminada.
Para las fuentes alojadas en una imagen de OCI, ingresa los siguientes campos:
- Ingresa la URL de la imagen de OCI que usas como fuente de confianza como Imagen.
- Ingresa la ruta del directorio desde el que se realiza la sincronización en relación con el directorio raíz como el Directorio.
(Opcional): Expande la sección Configuración avanzada para completar lo siguiente:
Selecciona un Tipo de autenticación. El Sincronizador de configuración necesita acceso de solo lectura a tu fuente de información para leer los archivos de configuración en 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 otorgarle al Sincronizador de configuración acceso de solo lectura a tu repositorio de Git, imagen de OCI o gráfico de Helm (solo gcloud CLI). Elige el mismo tipo de autenticación que configuraste cuando instalaste el Sincronizador de configuración:
- Ninguna: No usa autenticación.
- SSH: Autentica con un par de claves SSH.
- Cookiefile: Autentícate con un
cookiefile
. - Token: Autentícate con un token de acceso o una contraseña.
- Google Cloud Repository: Usa una cuenta de servicio de Google para acceder a un Cloud Source Repositories. Selecciona esta opción solo si la Workload Identity Federation for 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.
Ingresa una cantidad de segundos para establecer el Tiempo de espera de la sincronización, que determina cuánto tiempo espera el Sincronizador de configuración entre los intentos de extracción de la fuente de información.
Ingresa una URL de proxy de Git para el proxy HTTPS que se usará durante la comunicación con la fuente de verdad.
Elige Hierarchy para cambiar el Formato de origen.
En la mayoría de los casos, se recomienda el valor predeterminado No estructurado, ya que te permite organizar tu fuente de verdad como quieras.
Haz clic en Deploy Package.
Se te redireccionará a la página Packages del Sincronizador de configuración. Después de unos minutos, deberías ver Sincronizado en la columna Estado de sincronización del clúster que configuraste.
gcloud
Antes de continuar, asegúrate de registrar tus clústeres en una flota.
Habilita la función de flota
ConfigManagement
:gcloud beta container fleet config-management enable
Prepara la configuración creando un archivo llamado
apply-spec.yaml
y copiando el siguiente archivo YAML en él.Puedes configurar todos los campos
spec.configSync
opcionales que necesites cuando crees tu manifiesto y, luego, usar comandoskubectl
para la configuración. También puedes establecer solo el campospec.configSync.enabled
comotrue
y omitir los campos opcionales. Luego, puedes usar los comandoskubectl
para crear objetos RootSync adicionales o RepoSyncs que puedes administrar por completo con los 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
Reemplaza lo siguiente:
SOURCE_TYPE
: Agregagit
para sincronizar desde un repositorio de Git,oci
para sincronizar desde una imagen de OCI ohelm
para sincronizar desde un gráfico de Helm. Si no se especifica ningún valor, el valor predeterminado esgit
.FORMAT
: agregaunstructured
para usar un repositorio no estructurado o agregahierarchy
a fin de usar un repositorio jerárquico. Estos valores distinguen entre mayúsculas y minúsculas. Este campo es opcional y el valor predeterminado eshierarchy
. Te recomendamos que agreguesunstructured
, ya que este formato te permite organizar la configuración de la manera que te resulte más conveniente.REPO
: Agrega la URL de la fuente de información. 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 planeas usar SSH como tusecretType
, ingresa la URL con el protocolo SSH. Este campo es obligatorio y, si no ingresas un protocolo, la URL se trata como una URL HTTPS.Las URLs de OCI usan 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 medianteTAG
oDIGEST
. EspecificaTAG
oDIGEST
en elPACKAGE_NAME
:- Para extraer antes del
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Para extraer antes del
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Para extraer antes del
REVISION
: La revisión de Git (etiqueta o hash) o el nombre de la rama desde la que se realiza la sincronización. Cuando se usa un hash, debe ser un hash completo, no una forma abreviada.SECRET_TYPE
: Uno de los siguientessecretTypes
:git
none
: No usa autenticaciónssh
: Usa un par de claves SSHcookiefile
: Usa un objetocookiefile
token
: Usa un tokengcpserviceaccount
: 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 una vinculación de política de IAM después de que termines de configurar el Sincronizador de configuración. Para obtener más detalles, consulta la pestaña Cuenta de servicio de Google de la sección Otorga acceso de Config Sync a Git 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 la Workload Identity Federation for GKE no está habilitada en tu clúster.githubapp
: Usa una app de GitHub para autenticarte en un repositorio de GitHub.
Para obtener más información sobre estos tipos de autenticación, consulta Otorga acceso de Sincronizador de configuración a Git.
oci
none
: No usa autenticacióngcenode
: Usa la cuenta de servicio predeterminada de Compute Engine para acceder a una imagen en Artifact Registry. Selecciona esta opción solo si la Workload Identity Federation for GKE no está habilitada en tu clúster.gcpserviceaccount
: Usa una cuenta de servicio de Google para acceder a una imagen.
helm
token
: Usa un tokengcenode
: Usa la cuenta de servicio predeterminada de Compute Engine para acceder a una imagen en Artifact Registry. Selecciona esta opción solo si la Workload Identity Federation for GKE no está habilitada en tu clúster.gcpserviceaccount
: Usa una cuenta de servicio de Google para acceder a una imagen.
EMAIL
: Si agregastegcpserviceaccount
comosecretType
, agrega la dirección de correo electrónico de la cuenta de servicio de Google. Por ejemplo,acm@PROJECT_ID.
METRICS_EMAIL
: Es el correo electrónico de la Google Cloudcuenta de servicio (GSA) que se usa para exportar las métricas del Sincronizador de configuración a Cloud Monitoring. La GSA debe tener el rol de IAM de escritor de métricas de Monitoring (roles/monitoring.metricWriter
). La ServiceAccount de Kubernetesdefault
en el espacio de nombresconfig-management-monitoring
debe estar vinculada a la GSA.DIRECTORY
: ruta del directorio desde el que se realiza la sincronización en relación con la raíz del repositorio de Git. Se incluyen todos los subdirectorios del directorio que especificas y se sincronizan con el clúster. El valor predeterminado es el directorio raíz del repositorio.
Para obtener una lista completa de los campos que puedes agregar al campo
spec
, consulta Campos de gcloud.Aplica el archivo
apply-spec.yaml
. Si usas un manifiesto existente, debes aplicar el archivo al clúster que deseas establecer con la configuración que recuperaste en el comando anterior:gcloud beta container fleet config-management apply \ --membership=MEMBERSHIP_NAME \ --config=CONFIG_YAML_PATH \ --project=PROJECT_ID
Reemplaza lo siguiente:
MEMBERSHIP_NAME
: El nombre de la membresía de la flota que elegiste cuando registraste tu clúster, puedes encontrar el nombre congcloud container fleet memberships list
.CONFIG_YAML_PATH
: La ruta de acceso a tu archivoapply-spec.yaml
.PROJECT_ID
: el ID de tu proyecto
Terraform
Para cada clúster en el que deseas configurar el Sincronizador de configuración, aplica un bloque de recursos google_gkehub_feature_membership
que contenga un bloque configmanagement
y config_sync
, como en el siguiente ejemplo:
git
Reemplaza lo siguiente:
REPO
: Es la URL del repositorio de Git que contiene tus archivos de configuración.BRANCH
: Es la rama del repositorio, por ejemplo,main
.DIRECTORY
: Es la ruta de acceso dentro del repositorio de Git que representa el nivel superior del repositorio que deseas sincronizar.SECRET
: Es el tipo de autenticación del secreto.
oci
Reemplaza lo siguiente:
REPO
: Es la URL del repositorio de imágenes de OCI que contiene tus archivos de configuración.DIRECTORY
: Es la ruta de acceso absoluta del directorio que contiene los recursos que deseas sincronizar. Para usar el directorio raíz, deja este campo en blanco.SECRET
: Es el tipo de autenticación del secreto.
Repite este proceso para 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 tu repositorio raíz, puedes optar por configurar la sincronización desde varios repositorios, incluidos otros repositorios raíz y de espacios de nombres. Estos repositorios de espacios de nombres son útiles si deseas un repositorio que contenga archivos de configuración con alcance de espacio de nombres sincronizados con un espacio de nombres en particular en todos los clústeres.
Verifique la instalación
Después de instalar y configurar Sincronizador de configuración, puedes verificar que la instalación se haya completado correctamente.
gcloud
Ejecuta el siguiente comando:
nomos status
Si la instalación se realiza correctamente, se muestra el estado SYNCED
o PENDING
.
Para obtener más detalles sobre la información que proporciona nomos status
, incluidos los errores informados, consulta Cómo verificar el estado del Sincronizador de configuración en la documentación de la herramienta de línea de comandos nomos
.
Console
Completa los siguientes pasos:
- En la Google Cloud consola, ve a la página Config en la sección Features.
- En la pestaña Packages, consulta la columna Sync status en la tabla del clúster. Si la instalación del Sincronizador de configuración se realiza correctamente, tendrá el estado Instalado. Si la fuente de información se configuró correctamente, tendrá el estado Sincronizada.
¿Qué sigue?
- Aprende a actualizar el Sincronizador de configuración.
- Obtén más información sobre los comandos de
gcloud
para configurar el Sincronizador de configuración. - Descubre cómo configurar la sincronización desde varios repositorios.
- Usa el comando
nomos
. - Lee la Introducción a la solución de problemas del Sincronizador de configuración.
- Obtén más información para desinstalar el Sincronizador de configuración.
- Revisa los permisos predeterminados del Sincronizador de configuración.