Config Sync mit kubectl-Befehlen konfigurieren

Auf dieser Seite wird erläutert, wie Sie Config Sync mit kubectl-Befehlen konfigurieren, nachdem Sie Config Sync über die Google Cloud Console oder die Google Cloud CLI installiert haben.

Sie können zwar viele Konfigurationsänderungen über die Console oder die Befehlszeile vornehmen, aber Sie müssen kubectl-Befehle verwenden, um einige Config Sync-Standardeinstellungen zu überschreiben, die SSL-Zertifikatsüberprüfung zu steuern und eine Zertifizierungsstelle zu verwenden.

RootSync-Konfigurationsdatei erstellen und bearbeiten

Wenn Sie Config Sync mit kubectl-Befehlen konfigurieren möchten, bearbeiten Sie ein RootSync-Objekt durch Erstellen einer YAML-Datei.

Wenn Sie Config Sync über die Google Cloud Console oder die Google Cloud CLI installieren, erstellt Config Sync automatisch ein RootSync-Objekt mit dem Namen root-sync. Dieses Objekt enthält die neuesten Konfigurationsinformationen für Config Sync. Jedes Mal, wenn Sie eine Änderung in der Google Cloud Console oder der Google Cloud CLI vornehmen, wird root-sync aktualisiert.

Informationen zu den Feldern, die Sie mit kubectl bearbeiten können

Sie können mit kubectl-Befehlen erweiterte Änderungen an root-sync für die Felder vornehmen, die in der Google Cloud Console oder der Google Cloud CLI nicht unterstützt werden. Wenn Sie RootSync- oder RepoSync-Objekte direkt mit kubectl-Befehlen erstellen und dann aktualisieren möchten, finden Sie weitere Informationen unter RootSync- und RepoSync-Felder.

Bevor Sie Änderungen an der YAML-Datei vornehmen, die Sie im folgenden Abschnitt erstellen, machen Sie sich mit der folgenden Tabelle vertraut. In dieser Tabelle sind die Felder aufgeführt, die Sie bearbeiten und hinzufügen können. Wenn Sie Felder bearbeiten, die in dieser Tabelle nicht aufgeführt sind, setzt Config Sync Änderungen automatisch auf die Werte zurück, die Sie bei der letzten Konfiguration von Config Sync in der Google Cloud Console oder der Google Cloud CLI festgelegt haben.

Schlüssel Beschreibung
spec.git.noSSLVerify noSSLVerify gibt an, ob die SSL-Zertifikatüberprüfung aktiviert oder deaktiviert werden soll. Standardeinstellung: false
Wenn noSSLVerify auf true gesetzt ist, wird Git angewiesen, die Überprüfung des SSL-Zertifikats zu überspringen.
spec.git.caCertSecretRef.name Der Name des Secrets, das das Zertifikat der Zertifizierungsstelle (Certificate Authority, CA) enthält. Wenn dieses Feld angegeben ist, muss der Git-Server ein von dieser Zertifizierungsstelle ausgestelltes Zertifikat verwenden. Das CA-Zertifikat muss im Secret unter einem Schlüssel mit dem Namen „cert“ gespeichert werden.
spec.override.resources Die Liste der Containerressourcenanfragen und Überschreibungen von Limits. Optional.
Jedes Element in der Liste enthält drei Felder:
  • containerName: Dieses Feld kann entweder git-sync, oci-sync, hydration-controller oder reconciler sein.
  • cpuRequest (optional)
  • cpuLimit (optional)
  • memoryRequest (optional)
  • memoryLimit (optional)

Wenn für eine Ressourcenanfrage oder ein Ressourcenlimit kein Überschreibungswert angegeben ist, wird der Standardressourcenwert für die Anfrage oder das Limit verwendet.
spec.override.gitSyncDepth Mit gitSyncDepth können Sie die Anzahl der abzurufenden Git-Commits überschreiben.
Darf nicht kleiner als 0 sein.
Config Sync klont einen vollständigen Klon, wenn dieses Feld 0 ist, und einen oberflächlichen Klon, wenn dieses Feld größer als 0 ist.
Wenn dieses Feld nicht angegeben ist, wird es von Config Sync automatisch konfiguriert.
spec.override.statusMode Mit statusMode können Sie die Erfassung des Status auf Ressourcenebene aktivieren oder deaktivieren.
Der Standardwert ist enabled.
Wenn Sie das Erfassen des Status auf Ressourcenebene deaktivieren möchten, legen Sie dieses Feld auf disabled fest.
spec.override.reconcileTimeout Mit reconcileTimeout können Sie den Grenzwert überschreiben, der angibt, wie lange auf den Abgleich von Ressourcen in einer Anwendungsgruppe gewartet werden soll, bevor sie aufgegeben werden. Alle Ressourcen in einem Commit können sich basierend auf den Abhängigkeiten in mehreren Anwendungsgruppen befinden.
Das Standardzeitlimit ist 5m.
Verwenden Sie einen String, um diesen Feldwert anzugeben, z. B. 30s, 5m.
spec.override.enableShellInRendering enableShellInRendering gibt an, ob der Shell-Zugriff im Renderingprozess aktiviert oder deaktiviert wird. Kustomize-Remote-Basen erfordern Shell-Zugriff. Wenn Sie dieses Feld auf true setzen, wird der Shell-Zugriff im Renderingprozess aktiviert und das Abrufen von Remote-Basen aus öffentlichen Repositories unterstützt.
Der Standardwert ist false.

Datei erstellen

So erstellen und bearbeiten Sie eine Konfigurationsdatei für root-sync:

  1. Damit Sie die Konfigurationsinformationen für den richtigen Cluster abrufen, konfigurieren Sie den Zugriff über die kubectl-Befehlszeile:

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

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME: der Name des Clusters mit der Config Sync-Konfiguration, die Sie ändern möchten
    • ZONE: Zone, in der Sie den Cluster erstellt haben
    • PROJECT_ID: Ihre Projekt-ID.
  2. Kopieren Sie die Konfigurationsinformationen aus dem RootSync-Objekt, das Config Sync erstellt hat, in eine YAML-Datei:

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

    Ersetzen Sie FILE_NAME durch einen Namen für die Konfigurationsdatei.

  3. Öffnen Sie die von Ihnen erstellte YAML-Datei und nehmen Sie die erforderlichen Konfigurationsänderungen vor. Wenn Sie beispielsweise das Arbeitsspeicherlimit des git-sync-Containers überschreiben möchten, fügen Sie die folgenden fett formatierten Felder hinzu:

    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. Wenden Sie die Änderungen auf die YAML-Datei an:

    kubectl apply -f FILE_NAME.yaml
    
  5. Wenn Sie prüfen möchten, ob Config Sync Ihre Änderungen angewendet hat, rufen Sie das RootSync-Objekt auf:

    kubectl describe rootsync root-sync -n config-management-system
    
  6. Verwenden Sie den Befehl nomos status, um zu prüfen, ob Ihre Änderungen Fehler verursacht haben:

    nomos status
    

RootSync-Objekt entfernen

Führen Sie den folgenden Befehl aus, um root-sync zu löschen:

kubectl delete -f FILE_NAME

Ersetzen Sie FILE_NAME durch den Namen Ihrer RootSync-Konfigurationsdatei. Beispiel: root-sync.yaml.

Durch das Löschen eines RootSync- oder RepoSync-Objekts werden Config Sync-Annotationen und -Labels nicht bereinigt. Führen Sie zum Bereinigen verwalteter Ressourcen eine Synchronisierung aus einem leeren Git-Verzeichnis durch.

Nächste Schritte