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:
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
:
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öchtenZONE
: Zone, in der Sie den Cluster erstellt habenPROJECT_ID
: Ihre Projekt-ID.
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.Ö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
Wenden Sie die Änderungen auf die YAML-Datei an:
kubectl apply -f FILE_NAME.yaml
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
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
- Weitere Informationen zu den RootSync- und RepoSync-Feldern.
- RootSync- und RepoSync-Objekte überwachen