Auf dieser Seite wird erläutert, 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
Zum Konfigurieren von Config Sync mit kubectl
-Befehlen bearbeiten Sie ein RootSync-Objekt durch Erstellen einer YAML-Datei.
Wenn Sie Config Sync mit der Google Cloud Console oder der Google Cloud CLI installieren, erstellt Config Sync automatisch ein RootSync-Objekt namens root-sync
. Dieses Objekt enthält die neuesten Konfigurationsinformationen für Config Sync. 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 erweiterte Änderungen an root-sync
mit kubectl
-Befehlen 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 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-Zertifikatsüberprüfung aktiviert oder deaktiviert werden soll. Standardeinstellung: false Wenn noSSLVerify auf true gesetzt ist, wird Git angewiesen, die SSL-Zertifikatsprüfung zu überspringen. |
spec.git.caCertSecretRef.name |
Der Name des Secrets, das das Zertifikat der Zertifizierungsstelle enthält. Ist dieses Feld angegeben, muss der Git-Server ein von dieser Zertifizierungsstelle ausgestelltes Zertifikat verwenden. Das CA-Zertifikat muss im Secret unter einem Schlüssel namens "cert" gespeichert sein. |
spec.override.resources |
Die Liste der Überschreibungen für Containerressourcen und -limits. Optional. Jedes Element in der Liste enthält drei Felder:
Wenn kein Überschreibungswert für eine Ressourcenanfrage oder -grenze 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 führt einen vollständigen Klon aus, wenn das Feld 0 ist, und einen "oberflächlichen" Klon, wenn das Feld größer als 0 ist. Ist dieses Feld nicht angegeben, 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 .Legen Sie für dieses Feld disabled fest, wenn Sie die Erfassung des Status auf Ressourcenebene deaktivieren möchten.
|
spec.override.reconcileTimeout |
Mit reconcileTimeout können Sie den Schwellenwert für die Zeit bis zum Abgleich der Ressourcen in einer Apply-Gruppen überschreiben, nach der ein Vorgang abgebrochen wird. Alle Ressourcen in einem Commit können sich je nach Abhängigkeiten in mehreren Apply-Gruppen 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 werden soll. Kustomize-Remotebasisdaten erfordern Shell-Zugriff. Wenn Sie dieses Feld auf true setzen, wird der Shell-Zugriff im Renderingprozess aktiviert und das Abrufen von Remote-Basisdaten aus öffentlichen Repositories wird unterstützt.Der Standardwert ist false . |
Erstellen der Datei
Führen Sie die folgenden Schritte aus, um eine Konfigurationsdatei für root-sync
zu erstellen und zu bearbeiten:
Damit Sie die Konfigurationsinformationen für den richtigen Cluster abrufen, konfigurieren Sie den Zugriff auf die
kubectl
-Befehlszeile:gcloud container clusters get-credentials CLUSTER_NAME \ --zone ZONE \ --project PROJECT_ID
Ersetzen Sie dabei Folgendes:
CLUSTER_NAME
: 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 von Config Sync erstellten RootSync-Objekt 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.Ö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 Felder in Fettschrift 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
Rufen Sie das RootSync-Objekt auf, um zu prüfen, ob Config Sync Ihre Änderungen angewendet hat:
kubectl describe rootsync root-sync -n config-management-system
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
Rufen Sie das CA-Zertifikat ab, mit dem das Zertifikat für Ihren Git-Server ausgestellt wurde, und speichern Sie es in einer Datei.
Bei
RootSync
-Objekten muss das Secret im Namespaceconfig-management-system
erstellt werden. Beispiele:kubectl create secret generic ROOT_CA_CERT_SECRET_NAME
--namespace=config-management-system
--from-file=cert=/path/to/CA_CERT_FILELegen Sie beim Konfigurieren des
RootSync
-Objekts den Wert descaCertSecretRef.name
-Felds imRootSync
-Objekt auf ROOT_CA_CERT_SECRET_NAME fest.
RepoSync
Rufen Sie das CA-Zertifikat ab, mit dem das Zertifikat für Ihren Git-Server ausgestellt wurde, und speichern Sie es in einer Datei.
Bei
RepoSync
-Objekten muss das Secret im selben Namespace wie das RepoSync-Objekt erstellt werden. Beispiele:kubectl create secret generic NAMESPACE_CA_CERT_SECRET_NAME
--namespace=REPO_SYNC_NAMESPACE
--from-file=cert=/path/to/CA_CERT_FILEWenn Sie
RepoSync
konfigurieren, setzen Sie den Wert descaCertSecretRef.name
-Felds imRepoSync
-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 dabei 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, führen Sie eine Synchronisierung aus einem leeren Git-Verzeichnis aus.
Nächste Schritte
- Weitere Informationen zu den RootSync- und RepoSync-Feldern
- Monitoring von RootSync- und RepoSync-Objekten