Configurare Config Sync con i comandi kubectl

Questa pagina spiega come configurare Config Sync utilizzando i comandi kubectl dopo che hai installato Config Sync utilizzando la console Google Cloud o Google Cloud CLI.

Anche se puoi apportare molte modifiche alla configurazione utilizzando la console o l'interfaccia a riga di comando, devi utilizzare i comandi kubectl per eseguire l'override di alcune impostazioni predefinite di Config Sync, per controllare la verifica dei certificati SSL e per utilizzare un'autorità di certificazione.

Creare e modificare il file di configurazione RootSync

Per configurare Config Sync utilizzando i comandi kubectl, puoi modificare un oggetto RootSync creando un file YAML.

Quando installi Config Sync utilizzando la console Google Cloud o Google Cloud CLI, Config Sync crea automaticamente un oggetto RootSync denominato root-sync. Questo oggetto contiene le informazioni di configurazione più recenti per Config Sync. Ogni volta che apporti una modifica nella console Google Cloud o Google Cloud CLI, viene aggiornato root-sync.

Scopri di più sui campi che puoi modificare utilizzando kubectl

Puoi apportare modifiche avanzate a root-sync utilizzando i comandi kubectl per i campi non supportati nella console Google Cloud o in Google Cloud CLI. Se desideri creare e aggiornare direttamente oggetti RootSync o RepoSync utilizzando i comandi kubectl, consulta Campi RootSync e RepoSync.

Prima di apportare modifiche al file YAML che crei nella sezione seguente, acquisisci familiarità con la tabella seguente. Questa tabella elenca i campi che puoi modificare e aggiungere. Se modifichi i campi non elencati in questa tabella, Config Sync ripristina automaticamente le modifiche ai valori impostati durante l'ultima configurazione di Config Sync nella console Google Cloud o in Google Cloud CLI.

Chiave Descrizione
spec.git.noSSLVerify noSSLVerify specifica se attivare o disattivare la verifica del certificato SSL. Valore predefinito: false.
Se noSSLVerify è impostato su true, indica a Git di saltare la verifica del certificato SSL.
spec.git.caCertSecretRef.name Il nome del secret contenente il certificato dell'autorità di certificazione (CA). Se questo campo viene fornito, il server Git deve utilizzare un certificato emesso da questa CA. Il certificato CA deve essere archiviato nel secret in una chiave denominata "cert".
spec.override.resources L'elenco delle richieste di risorse del container e degli override dei limiti. Facoltativo.
Ogni elemento dell'elenco contiene tre campi:
  • containerName: questo campo può essere git-sync, oci-sync, hydration-controller o reconciler.
  • cpuRequest (facoltativo)
  • cpuLimit (facoltativo)
  • memoryRequest (facoltativo)
  • memoryLimit (facoltativo)

Quando non viene fornito un valore di override per una richiesta o un limite di risorse, viene utilizzato il valore predefinito della risorsa per la richiesta o il limite.
spec.override.gitSyncDepth gitSyncDepth consente di eseguire l'override del numero di commit Git da recuperare.
Non deve essere inferiore a 0.
Config Sync esegue un clone completo se il campo è pari a 0 e un clone superficiale se il campo è maggiore di 0.
Se questo campo non viene fornito, Config Sync lo configura automaticamente.
spec.override.statusMode statusMode consente di abilitare o disabilitare l'acquisizione dello stato a livello di risorsa.
Il valore predefinito è enabled.
Per disabilitare l'acquisizione dello stato a livello di risorsa, imposta questo campo su disabled.
spec.override.reconcileTimeout reconcileTimeout consente di eseguire l'override della soglia relativa al tempo di attesa della riconciliazione delle risorse in un gruppo di applicazione prima di rinunciare. Tutte le risorse in un commit possono essere in più gruppi di applicazione in base alle dipendenze.
Il timeout predefinito è 5m.
Utilizza la stringa per specificare questo valore del campo, ad esempio 30s, 5m.
spec.override.enableShellInRendering enableShellInRendering consente di specificare se abilitare o disabilitare l'accesso alla shell nel processo di rendering. Le basi remote Kustomize richiedono l'accesso a shell. Se questo campo viene impostato su true, consente l'accesso alla shell durante il processo di rendering e supporta il pull delle basi remote da repository pubblici.
Il valore predefinito è false.

Crea il file

Per creare e modificare un file di configurazione per root-sync, completa questi passaggi:

  1. Per assicurarti di recuperare le informazioni di configurazione per il cluster corretto, configura l'accesso da riga di comando kubectl:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --zone ZONE \
        --project PROJECT_ID
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del cluster con la configurazione di Config Sync che vuoi modificare
    • ZONE: la zona in cui hai creato il cluster
    • PROJECT_ID: il tuo ID progetto
  2. Copia le informazioni di configurazione dall'oggetto RootSync creato da Config Sync in un file YAML:

    kubectl get rootsync root-sync -n config-management-system -o yaml >
    FILE_NAME.yaml
    

    Sostituisci FILE_NAME con un nome per il file di configurazione.

  3. Apri il file YAML che hai creato e apporta le modifiche necessarie alla configurazione. Ad esempio, per eseguire l'override del limite di memoria del contenitore git-sync, aggiungi i seguenti campi in grassetto:

    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
    
  4. Applica le modifiche al file YAML:

    kubectl apply -f FILE_NAME.yaml
    
  5. Per verificare che Config Sync abbia applicato le modifiche, visualizza l'oggetto RootSync:

    kubectl describe rootsync root-sync -n config-management-system
    
  6. Per verificare che le modifiche non abbiano introdotto errori, utilizza il comando nomos status:

    nomos status
    

Rimuovi l'oggetto RootSync

Per eliminare root-sync, esegui questo comando:

kubectl delete -f FILE_NAME

Sostituisci FILE_NAME con il nome del file di configurazione di RootSync. Ad esempio, root-sync.yaml.

L'eliminazione di un oggetto RootSync o RepoSync non elimina le annotazioni e le etichette di Config Sync. Per pulire le risorse gestite, esegui la sincronizzazione da una directory Git vuota.

Passaggi successivi