En esta página se explica cómo configurar Config Sync con comandos kubectl
después de instalar Config Sync con la consola Google Cloud o la CLI de Google Cloud.
Aunque puedes hacer muchos cambios en la configuración mediante la consola o la CLI, debes usar los comandos kubectl
para anular algunos valores predeterminados de Config Sync, controlar la verificación de certificados SSL y usar una autoridad de certificación.
Crear y editar el archivo de configuración de RootSync
Para configurar Config Sync con comandos kubectl
, edita un objeto RootSync creando un archivo YAML.
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 Este objeto contiene la información de configuración más reciente de Config Sync. Cada vez que hagas un cambio en la Google Cloud consola o en la interfaz de línea de comandos de Google Cloud, root-sync
se actualizará.
Información sobre los campos que puedes editar con kubectl
Puedes hacer cambios avanzados en root-sync
con los comandos de kubectl
para los campos que no se admiten en la consola de Google Cloud ni en la CLI de Google Cloud. Si quieres crear y actualizar objetos RootSync o RepoSync directamente mediante comandos kubectl
, consulta Campos de RootSync y RepoSync.
Antes de hacer cambios en el archivo YAML que crees en la siguiente sección, consulta la tabla que aparece a continuación. En esta tabla se indican los campos que puede editar y añadir. Si editas campos que no aparecen en esta tabla, Config Sync revertirá automáticamente los cambios a los valores que hayas definido la última vez que configuraste Config Sync en la Google Cloud consola o en la CLI de Google Cloud.
Clave | Descripción |
---|---|
spec.git.noSSLVerify |
noSSLVerify especifica si se habilita o inhabilita la verificación del certificado SSL. Valor predeterminado: false .Si noSSLVerify tiene el valor true , indica a Git que omita la verificación del certificado SSL. |
spec.git.caCertSecretRef.name |
Nombre del secreto que contiene el certificado de la autoridad de certificación (CA). Si se proporciona este campo, el servidor Git debe usar un certificado emitido por esta CA. El certificado de la AC debe almacenarse en el secreto con la clave `cert`. |
spec.override.resources |
Lista de solicitudes de recursos de contenedor y anulaciones de límites. Opcional. Cada elemento de la lista contiene tres campos:
Si no se proporciona un valor de sustitución para una solicitud o un límite de recursos, se utiliza el valor de recurso predeterminado de la solicitud o el límite. |
spec.override.gitSyncDepth |
gitSyncDepth te permite anular el número de confirmaciones de Git que se van a obtener.Debe ser igual o superior a 0. Config Sync hace una clonación completa si este campo es 0 y una clonación superficial si este campo es mayor que 0. Si no se proporciona este campo, Config Sync lo configura automáticamente. |
spec.override.statusMode |
statusMode te permite habilitar o inhabilitar la captura del estado a nivel de recurso.El valor predeterminado es enabled .Para inhabilitar la captura del estado a nivel de recurso, asigna el valor disabled a este campo.
|
spec.override.reconcileTimeout |
reconcileTimeout te permite anular el umbral de tiempo que se espera a los recursos de un grupo de aplicaciones para conciliarse antes de abandonar. Todos los recursos de una confirmación pueden estar en varios grupos de aplicación en función de las dependencias.El tiempo de espera predeterminado es 5m .Usa una cadena para especificar el valor de este campo; por ejemplo, 30s
5m .
|
spec.override.enableShellInRendering |
enableShellInRendering especifica si se habilita o inhabilita el acceso a la shell en el proceso de renderización. Las bases remotas de Kustomize requieren acceso a la shell. Si se asigna el valor true a este campo, se habilita el acceso a shell en el proceso de renderización y se admite la extracción de bases remotas de repositorios públicos.El valor predeterminado es false . |
Crea el archivo
Para crear y editar un archivo de configuración de root-sync
, sigue estos pasos:
Para asegurarte de que obtienes la información de configuración del clúster correcto, configura el acceso a la línea de comandos
kubectl
:gcloud container clusters get-credentials CLUSTER_NAME \ --zone ZONE \ --project PROJECT_ID
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre del clúster que tiene la configuración de Config Sync que quieres cambiarZONE
: la zona en la que has creado el clústerPROJECT_ID
: tu ID de proyecto
Copia la información de configuración del objeto RootSync que ha creado Config Sync en un archivo YAML:
kubectl get rootsync root-sync -n config-management-system -o yaml > FILE_NAME.yaml
Sustituye
FILE_NAME
por el nombre que quieras darle al archivo de configuración.Abre el archivo YAML que has creado y haz los cambios de configuración necesarios. Por ejemplo, para anular el límite de memoria del contenedor
git-sync
, añade los siguientes campos en negrita:apiVersion: v1 items: - apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: annotations: configmanagement.gke.io/managed-by-hub: "true" configmanagement.gke.io/update-time: "1644945169" creationTimestamp: "2022-02-15T17:12:52Z" generation: 1 name: root-sync namespace: config-management-system resourceVersion: "211980457" uid: aa30a94b-2825-4590-ad30-5af848403502 spec: git: auth: none branch: main dir: /quickstart/config-sync period: 15s repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples revision: HEAD secretRef: {} override: resources: - containerName: "git-sync" memoryLimit: "400Mi" sourceFormat: unstructured # Remainder of RootSync omitted
Aplica los cambios al archivo YAML:
kubectl apply -f FILE_NAME.yaml
Para verificar que Config Sync ha aplicado los cambios, consulta el objeto RootSync:
kubectl describe rootsync root-sync -n config-management-system
Para comprobar que los cambios no han introducido ningún error, usa el comando
nomos status
:nomos status
Configurar autoridad de certificación
En el caso de los servidores configurados con certificados de una autoridad de certificación (CA) que aún no sea de confianza, Config Sync se puede configurar para que use un certificado de CA con el fin de verificar las conexiones HTTPS al servidor. Esta opción se admite en servidores Git, Helm u OCI. El certificado de la AC
debe incluir certificados SSL completos (raíz, intermedio y hoja).
Si tu servidor ya usa una autoridad de certificación de confianza o no te conectas a través de HTTPS, puedes saltarte este paso y dejar caCertSecretRef
sin definir.
RootSync
Obtén el certificado de la AC que se usó para emitir el certificado de tu servidor Git y guárdalo en un archivo.
En el caso de los objetos
RootSync
, el secreto debe crearse en el espacio de nombresconfig-management-system
. Por ejemplo:kubectl create secret generic ROOT_CA_CERT_SECRET_NAME
--namespace=config-management-system
--from-file=cert=/path/to/CA_CERT_FILECuando configures el objeto
RootSync
, asigna el valor ROOT_CA_CERT_SECRET_NAME al campocaCertSecretRef.name
del objetoRootSync
.
RepoSync
Obtén el certificado de la AC que se usó para emitir el certificado de tu servidor Git y guárdalo en un archivo.
En el caso de los objetos
RepoSync
, el secreto debe crearse en el mismo espacio de nombres que el RepoSync. Por ejemplo:kubectl create secret generic NAMESPACE_CA_CERT_SECRET_NAME
--namespace=REPO_SYNC_NAMESPACE
--from-file=cert=/path/to/CA_CERT_FILECuando configures
RepoSync
, asigna el valor NAMESPACE_CA_CERT_SECRET_NAME al campocaCertSecretRef.name
del objetoRepoSync
.
Eliminar el objeto RootSync
Para eliminar root-sync
, ejecuta el siguiente comando:
kubectl delete -f FILE_NAME
Sustituye FILE_NAME
por el nombre del archivo de configuración de RootSync. Por ejemplo, root-sync.yaml
.
Si se elimina un objeto RootSync o RepoSync, no se limpiarán las anotaciones ni las etiquetas de Config Sync. Para limpiar los recursos gestionados, sincroniza desde un directorio de Git vacío.
Siguientes pasos
- Consulta más información sobre los campos de RootSync y RepoSync.
- Descubre cómo monitorizar objetos RootSync y RepoSync.