Config Sync mit kubectl-Befehlen konfigurieren

Auf dieser Seite wird beschrieben, wie Sie Config Sync mit kubectl-Befehlen konfigurieren, nachdem Sie Config Sync mit der Google Cloud Console oder der Google Cloud CLI installiert haben.

Sie können zwar viele Konfigurationsänderungen mit der Console oder der Befehlszeile vornehmen, aber Sie müssen kubectl-Befehle verwenden, um gewisse Config Sync-Standardeinstellungen zu überschreiben, um 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, indem Sie eine YAML-Datei erstellen.

Wenn Sie Config Sync mit der Google Cloud -Konsole oder der Google Cloud CLI installieren, erstellt Config Sync automatisch ein RootSync-Objekt namens root-sync. Dieses Objekt enthält die aktuellen Konfigurationsinformationen für Config Sync. Wenn Sie eine Änderung in der Google Cloud Console oder der Google Cloud CLI vornehmen, wird root-sync aktualisiert.

kubectl-Felder bearbeiten

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

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

Schlüssel Beschreibung
spec.helm Alle Felder für die Helm-Repository-Konfiguration.
spec.override Alle Felder zum Überschreiben von Standardkonfigurationen.
spec.git.noSSLVerify Gibt an, ob die SSL-Zertifikatsprüfung für Git aktiviert oder deaktiviert werden soll. Der Standardwert ist false.
spec.git.caCertSecretRef.name Der Name des Secrets, das das Zertifikat der Zertifizierungsstelle für ein Git-Repository enthält.
spec.oci.caCertSecretRef.name Der Name des Secrets, das das CA-Zertifikat für ein OCI-Repository enthält.

Erstellen der Datei

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 kubectl-Befehlszeilenzugriff:

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

    Ersetzen Sie dabei 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 von Config Sync erstellt wurde, in eine YAML-Datei:

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

    Ersetzen Sie FILE_NAME mit einem 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 Speicherlimit des Containers git-sync ü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. So prüfen Sie, ob Config Sync Ihre Änderungen angewendet hat:

    kubectl describe rootsync root-sync -n config-management-system
    
  6. Prüfen Sie mit dem Befehl nomos status, ob Ihre Änderungen Fehler eingeführt haben:

    nomos status
    

Zertifizierungsstelle konfigurieren

Bei Servern, die mit Zertifikaten einer Zertifizierungsstelle (CA, Certificate Authority) konfiguriert sind, die noch nicht als vertrauenswürdig eingestuft wurde, kann Config Sync so konfiguriert werden, dass HTTPS-Verbindungen zum Server mit einem Zertifikat der Zertifizierungsstelle überprüft werden. Dies wird für Git-, Helm- und OCI-Server unterstützt. Das CA-Zertifikat muss vollständige SSL-Zertifikate (Stamm/Intermediate/Leaf) enthalten. Wenn Ihr Server bereits eine vertrauenswürdige Zertifizierungsstelle verwendet oder Sie keine Verbindung über HTTPS herstellen, können Sie diesen Schritt überspringen und caCertSecretRef festlegen weglassen.

RootSync

  1. Rufen Sie das CA-Zertifikat ab, mit dem das Zertifikat für Ihren Git-Server ausgestellt wurde, und speichern Sie es in einer Datei.

  2. Bei RootSync-Objekten muss das Secret im Namespace config-management-system erstellt werden. Beispiel:

    kubectl create secret generic ROOT_CA_CERT_SECRET_NAME 
    --namespace=config-management-system
    --from-file=cert=/path/to/CA_CERT_FILE

  3. Legen Sie beim Konfigurieren des RootSync-Objekts den Wert des caCertSecretRef.name-Felds im RootSync-Objekt auf ROOT_CA_CERT_SECRET_NAME fest.

RepoSync

  1. Rufen Sie das CA-Zertifikat ab, mit dem das Zertifikat für Ihren Git-Server ausgestellt wurde, und speichern Sie es in einer Datei.

  2. Bei RepoSync-Objekten muss das Secret im selben Namespace wie RepoSync erstellt werden. Beispiel:

    kubectl create secret generic NAMESPACE_CA_CERT_SECRET_NAME 
    --namespace=REPO_SYNC_NAMESPACE
    --from-file=cert=/path/to/CA_CERT_FILE

  3. Wenn Sie RepoSync konfigurieren, setzen Sie den Wert des caCertSecretRef.name-Felds im RepoSync-Objekt auf NAMESPACE_CA_CERT_SECRET_NAME.

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 die Annotationen und Labels von Config Sync nicht bereinigt. Wenn Sie verwaltete Ressourcen bereinigen möchten, synchronisieren Sie sie aus einem leeren Git-Verzeichnis.

Nächste Schritte