Mit Config Sync können Sie Ihre Kubernetes-Ressourcen verwalten, indem Sie Konfigurationen aus einer zentralen Source of Truth wie einem Git-Repository, einem OCI-Image oder einem Helm-Diagramm synchronisieren. Wenn die Standardinstallationsanleitung nicht Ihren Anforderungen entspricht, müssen Sie die Config Sync-Installation möglicherweise anpassen.
Auf dieser Seite erfahren Sie, wie Sie eine erweiterte Installation und Konfiguration von Config Sync durchführen. Der Installationsprozess umfasst Folgendes:
- Config Sync auf einzelnen Clustern mit derGoogle Cloud -Konsole, der Google Cloud CLI oder Terraform installieren.
- Konfigurieren Sie Ihr Stamm-Repository, einschließlich Quelltyp, Format und Authentifizierung.
- Prüfen, ob Config Sync erfolgreich installiert und konfiguriert wurde.
Beschränkungen
Config Sync unterstützt nicht die Konfiguration von helm
als Quelltyp über die Google Cloud -Konsole oder die Google Cloud CLI. Sie können Ihr RootSync
- oder RepoSync
-Objekt konfigurieren, um von einem Helm-Repository mithilfe der Kubernetes API zu synchronisieren, oder es in einer anderen „Source of Truth“ deklarieren.
Weitere Informationen finden Sie unter Konfiguration für das Helm-Repository.
Hinweise
Bevor Sie Config Sync installieren, bereiten Sie Ihre Source of Truth und einen geeigneten Cluster vor.
Config Sync Zugriff auf Ihre „Source of Truth“ gewähren
Damit Konfigurationen aus einer „Source of Truth“ mit Ihren Clustern synchronisiert werden können, benötigt Config Sync Lesezugriff auf Ihr Repository. Führen Sie die folgenden Schritte aus, um Config Sync zu autorisieren, Ihre Konfigurationen zu lesen:
Erstellen Sie eine „Source of Truth“, die die Konfigurationsdateien enthält, die Config Sync mit Ihren Clustern synchronisieren soll, oder verschaffen Sie sich Zugriff darauf. Weitere Informationen finden Sie in den folgenden Ressourcen:
- Konfigurationen zu einer „Source of Truth“ hinzufügen: konzeptionelle Informationen zu Konfigurationen.
- Best Practices für GitOps: Tipps und allgemeine Best Practices für die Organisation und Verwaltung Ihres Repositorys.
- Unstrukturiertes Repository verwenden: Empfehlungen für die Verwendung und Organisation eines unstrukturierten Repositorys.
Wenn Ihre primäre Quelle öffentlich ist, sind keine weiteren Maßnahmen erforderlich. Für Config Sync sind keine zusätzlichen Berechtigungen erforderlich.
Wenn Ihre primäre Datenquelle privat ist, folgen Sie der Anleitung auf einer der folgenden Seiten:
Clusteranforderungen prüfen
Bevor Sie einen Cluster erstellen, sollten Sie die Clusteranforderungen lesen.
Config Sync installieren
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
. Mit kubectl
‑Befehlen können Sie root-sync
ändern und zusätzliche Config Sync-Konfigurationen hinzufügen. Weitere Informationen finden Sie unter Config Sync mit kubectl
-Befehlen konfigurieren.
Console
Config Sync installieren
Alle Cluster müssen bei einer Flotte registriert sein, um Config Sync zu installieren. Wenn Sie Config Sync in der Google Cloud -Konsole installieren, werden die ausgewählten Cluster automatisch in Ihrer Flotte registriert.
- Rufen Sie in der Google Cloud -Console im Abschnitt Features die Seite Konfiguration auf.
- Klicken Sie auf add Config Sync installieren.
- Wählen Sie die Config Sync-Version aus, die Sie verwenden möchten.
- Wählen Sie unter Installationsoptionen eine der folgenden Optionen aus:
- Config Sync in der gesamten Flotte installieren (empfohlen): Config Sync wird in allen Clustern in der Flotte installiert.
- Config Sync in einzelnen Clustern installieren: Config Sync wird in den von Ihnen ausgewählten Clustern installiert. Alle ausgewählten Cluster werden automatisch bei Ihrer Flotte registriert.
- Wenn Sie Config Sync in einzelnen Clustern installieren, wählen Sie in der Tabelle Verfügbare Cluster die Cluster aus, in denen Sie Config Sync installieren möchten.
- Klicken Sie auf Config Sync installieren. Nach einigen Minuten sollte auf dem Tab Einstellungen in der Spalte Status für die Cluster in Ihrer Flotte Aktiviert angezeigt werden.
Paket bereitstellen
Nachdem Sie Ihre Cluster für eine Flotte registriert und Config Sync installiert haben, können Sie Config Sync so konfigurieren, dass ein Paket in einem Cluster aus einer Source of Truth bereitgestellt wird. Sie können ein Paket in mehreren Clustern oder verschiedene Pakete in verschiedenen Clustern bereitstellen. Sie können ein Paket nach der Bereitstellung bearbeiten, mit Ausnahme einiger Einstellungen wie Paketname und Synchronisierungstyp. Weitere Informationen finden Sie unter Pakete verwalten.
Führen Sie folgende Schritte aus, um ein Paket bereitzustellen:
Rufen Sie in der Google Cloud Console das Config Sync-Dashboard auf.
Klicken Sie auf Paket bereitstellen.
Wählen Sie in der Tabelle Cluster für die Paketbereitstellung auswählen den Cluster aus, für den Sie ein Paket bereitstellen möchten, und klicken Sie dann auf Weiter.
Wählen Sie entweder Auf Git gehostetes Paket oder In OCI gehostete Paket als Quelltyp aus und klicken Sie dann auf Weiter.
Geben Sie im Abschnitt Paketdetails einen Paketnamen ein, der das RootSync- oder RepoSync-Objekt identifiziert.
Wählen Sie im Feld Synchronisierungstyp entweder Clusterbezogene Synchronisierung oder Namespace-bezogene Synchronisierung als Synchronisierungstyp aus.
Die clusterbezogene Synchronisierung erstellt ein RootSync-Objekt und die Namespace-bezogene Synchronisierung ein RepoSync-Objekt. Weitere Informationen zu diesen Objekten finden Sie unter Config Sync-Architektur.
Geben Sie im Abschnitt Quelle Folgendes ein:
Geben Sie für Quellen, die in einem Git-Repository gehostet werden, die folgenden Felder ein:
- Geben Sie die URL des Git-Repositorys, das Sie als „Source of Truth“ verwenden, als Repository-URL ein.
- Optional: Aktualisieren Sie das Feld Überarbeitung, um zu prüfen, ob Sie nicht die Standardeinstellung
HEAD
verwenden. - Optional: Aktualisieren Sie das Feld Pfad, wenn Sie nicht aus dem Root-Repository synchronisieren möchten.
- Optional: Aktualisieren Sie das Feld Zweig, wenn Sie nicht den Standardzweig
main
verwenden.
Geben Sie für Quellen, die in einem OCI-Image gehostet werden, die folgenden Felder ein:
- Geben Sie die URL des OCI-Images, das Sie als „Source of Truth“ verwenden, als Image ein.
- Geben Sie den Pfad des Verzeichnisses relativ zum Stammverzeichnis als Verzeichnis ein, von dem aus synchronisiert werden soll.
(Optional): Maximieren Sie den Abschnitt Erweiterte Einstellungen, um Folgendes abzuschließen:
Wählen Sie einen Authentifizierungstyp aus. Config Sync benötigt Lesezugriff auf Ihre „Source of Truth“, um die Konfigurationsdateien in der Quelle zu lesen und auf Ihre Cluster anzuwenden. Sofern nicht Ihre Quelle (z. B. ein öffentliches Repository) keine Authentifizierung erfordert, müssen Sie dafür sorgen, dass Sie Config Sync Lesezugriff auf Ihr Git-Repository, OCI-Image oder Helm-Diagramm (nur gcloud CLI) gewähren. Wählen Sie den Authentifizierungstyp aus, den Sie bei der Installation von Config Sync konfiguriert haben:
- Keine: Keine Authentifizierung verwenden.
- SSH: Mit einem SSH-Schlüsselpaar authentifizieren.
- Cookiefile: Mit einem
cookiefile
authentifizieren. - Token: Mit einem Zugriffstoken oder Passwort authentifizieren.
- Google Cloud Repository: Ein Google-Dienstkonto verwenden, um auf ein Repository in Cloud Source Repository zuzugreifen. Wählen Sie diese Option nur aus, wenn Workload Identity Federation for GKE in Ihrem Cluster nicht aktiviert ist.
- Workload Identity: Verwenden Sie ein Google-Dienstkonto, um auf ein Cloud Source Repositories-Repository zuzugreifen.
Geben Sie eine Anzahl von Sekunden ein, um die Synchronisierungswartezeit festzulegen, die bestimmt, wie lange Config Sync zwischen den Versuchen zum Abruf aus der „Source of Truth“ wartet.
Geben Sie eine Git-Proxy-URL für den HTTPS-Proxy ein, der bei der Kommunikation mit der „Source of Truth“ verwendet werden soll.
Wählen Sie Hierarchie aus, um das Quellformat zu ändern.
Der Standardwert Unstrukturiert wird in den meisten Fällen empfohlen, da Sie damit Ihre "Source of Truth" wie gewünscht organisieren können.
Klicken Sie auf Paket bereitstellen.
Sie werden zur Config Sync-Seite Pakete weitergeleitet. Nach einigen Minuten sollte für den von Ihnen konfigurierten Cluster in der Spalte Synchronisierungsstatus der Wert Synchronisiert angezeigt werden.
gcloud
Bevor Sie fortfahren, müssen Sie Ihre Cluster bei einer Flotte registrieren.
Aktivieren Sie das Flottenfeature
ConfigManagement
:gcloud beta container fleet config-management enable
Bereiten Sie die Konfiguration vor, indem Sie eine Datei mit dem Namen
apply-spec.yaml
erstellen und die folgende YAML-Datei hineinkopieren.Sie können alle optionalen
spec.configSync
-Felder festlegen, die Sie beim Erstellen des Manifests benötigen, und späterkubectl
-Befehle für die Konfiguration verwenden. Sie können auch nur das Feldspec.configSync.enabled
alstrue
festlegen und die optionalen Felder weglassen. Sie können dann späterkubectl
-Befehle verwenden, um zusätzliche RootSync‑ oder RepoSync‑Objekte zu erstellen, die Sie später mithilfe vonkubectl
-Befehlen vollständig verwalten können.# apply-spec.yaml applySpecVersion: 1 spec: configSync: enabled: true # If you don't have a source of truth yet, omit the # following fields. You can configure them later. sourceType: SOURCE_TYPE sourceFormat: FORMAT syncRepo: REPO syncRev: REVISION secretType: SECRET_TYPE gcpServiceAccountEmail: EMAIL metricsGcpServiceAccountEmail: METRICS_EMAIL policyDir: DIRECTORY preventDrift: false
Ersetzen Sie Folgendes:
SOURCE_TYPE
: Fügen Siegit
hinzu, um aus einem Git-Repository zu synchronisieren,oci
, um aus einem OCI-Image zu synchronisieren, oderhelm
, um aus einem Helm-Diagramm zu synchronisieren. Wenn kein Wert angegeben ist, lautet der Standardwertgit
.FORMAT
: Fügen Sieunstructured
hinzu, um ein unstrukturiertes Repository zu verwenden, oder fügen Siehierarchy
hinzu, um ein hierarchisches Repository zu verwenden. Bei diesen Werten wird zwischen Groß- und Kleinschreibung unterschieden. Dieses Feld ist optional und der Standardwert isthierarchy
. Wir empfehlen das Hinzufügen vonunstructured
, da Sie mit diesem Format Ihre Konfigurationen so organisieren können, wie es für Sie am besten ist.REPO
: Fügen Sie die URL der Source of Truth hinzu. Git- und Helm-Repository-URLs verwenden entweder das HTTPS- oder das SSH-Protokoll. Beispiel:https://github.com/GoogleCloudPlatform/anthos-config-management-samples
Wenn Sie SSH alssecretType
verwenden möchten, geben Sie Ihre URL mit dem SSH-Protokoll ein. Dieses Feld ist erforderlich. Wenn Sie kein Protokoll eingeben, wird die URL als HTTPS-URL behandelt.OCI-URLs haben das folgende Format:
LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Standardmäßig wird das Image aus dem Taglatest
abgerufen, aber Sie können stattdessen Images vonTAG
oderDIGEST
abrufen. Geben SieTAG
oderDIGEST
imPACKAGE_NAME
an:- Zum Abrufen von
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Zum Abrufen von
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Zum Abrufen von
REVISION
: die Git-Revision (Tag oder Hash) oder der Name des Zweigs, von dem aus synchronisiert werden soll. Wenn Sie einen Hash verwenden, muss es sich um einen vollständigen Hash (nicht um eine abgekürzte Form) handeln.SECRET_TYPE
: einer der folgendensecretTypes
:git
none
: Keine Authentifizierung verwendenssh
: Ein SSH-Schlüsselpaar verwenden.cookiefile
: Einencookiefile
verwenden.token
: Ein Token verwenden.gcpserviceaccount
: Verwenden Sie ein Google-Dienstkonto, um auf ein Cloud Source Repositories- oder Secure Source Manager-Repository zuzugreifen. Wenn Sie diesen Authentifizierungstyp auswählen, müssen Sie eine IAM-Richtlinienbindung erstellen, nachdem Sie Config Sync konfiguriert haben. Weitere Informationen finden Sie auf dem Tab „Google-Dienstkonto“ unter Config Sync-Zugriff auf Git mit einem Google-Dienstkonto gewähren.gcenode
: Mit einem Google-Dienstkonto auf Cloud Source Repositories zugreifen Wählen Sie diese Option nur aus, wenn Workload Identity Federation for GKE nicht in Ihrem Cluster aktiviert ist.githubapp
: Verwenden Sie eine GitHub-App, um sich bei einem GitHub-Repository zu authentifizieren.
Weitere Informationen zu diesen Authentifizierungstypen finden Sie unter Config Sync-Zugriff auf Git gewähren.
oci
none
: Keine Authentifizierung verwendengcenode
: Verwenden Sie das Compute Engine-Standarddienstkonto, um auf ein Image in Artifact Registry zuzugreifen. Wählen Sie diese Option nur aus, wenn Workload Identity Federation for GKE in Ihrem Cluster nicht aktiviert ist.gcpserviceaccount
: Verwenden Sie ein Google-Dienstkonto für den Zugriff auf ein Image.
Helm
token
: Ein Token verwenden.gcenode
: Verwenden Sie das Compute Engine-Standarddienstkonto, um auf ein Image in Artifact Registry zuzugreifen. Wählen Sie diese Option nur aus, wenn Workload Identity Federation for GKE in Ihrem Cluster nicht aktiviert ist.gcpserviceaccount
: Verwenden Sie ein Google-Dienstkonto für den Zugriff auf ein Image.
EMAIL
: Wenn Siegcpserviceaccount
fürsecretType
angegeben haben, fügen Sie die E-Mail-Adresse Ihres Google-Dienstkontos hinzu. Beispiel:acm@PROJECT_ID.
.METRICS_EMAIL
: Die E-Mail-Adresse des Google Cloud-Dienstkontos (GSA), das für den Export von Config Sync-Messwerten nach Cloud Monitoring verwendet wird. Das GSA sollte die IAM-Rolle „Monitoring-Messwert-Autor“ (roles/monitoring.metricWriter
) haben. Das Kubernetes-Dienstkontodefault
im Namespaceconfig-management-monitoring
sollte an das GSA gebunden sein.DIRECTORY
: der Pfad des Verzeichnisses, von dem aus synchronisiert werden soll, relativ zum Stammverzeichnis des Git-Repositorys. Alle Unterverzeichnisse des von Ihnen angegebenen Verzeichnisses werden einbezogen und mit dem Cluster synchronisiert. Der Standardwert ist das Stammverzeichnis des Repositorys.
Eine vollständige Liste der Felder, die Sie dem Feld
spec
hinzufügen können, finden Sie unter gcloud-Felder.Wenden Sie die Datei
apply-spec.yaml
an: Wenn Sie ein vorhandenes Manifest verwenden, sollten Sie die Datei auf den Cluster anwenden, den Sie mit den Einstellungen konfigurieren möchten, die Sie im vorherigen Befehl abgerufen haben:gcloud beta container fleet config-management apply \ --membership=MEMBERSHIP_NAME \ --config=CONFIG_YAML_PATH \ --project=PROJECT_ID
Ersetzen Sie Folgendes:
MEMBERSHIP_NAME
: Name der Flottenmitgliedschaft, den Sie bei der Registrierung Ihres Clusters ausgewählt haben (kann mitgcloud container fleet memberships list
ermittelt werden).CONFIG_YAML_PATH
: Pfad zur Dateiapply-spec.yaml
PROJECT_ID
: Ihre Projekt-ID.
Terraform
Wenden Sie für jeden Cluster, für den Sie Config Sync konfigurieren möchten, einen google_gkehub_feature_membership
-Ressourcenblock an, der einen configmanagement
- und einen config_sync
-Block enthält, wie im folgenden Beispiel:
git
Ersetzen Sie Folgendes:
REPO
ist die URL zum Git-Repository mit Ihren Konfigurationsdateien.BRANCH
ist der Repository-Zweig, z. B.main
.DIRECTORY
ist der Pfad im Git-Repository, der die oberste Ebene des Repositorys darstellt, das Sie synchronisieren möchten.SECRET
ist der Secret-Authentifizierungstyp.
oci
Ersetzen Sie Folgendes:
REPO
ist die URL zum OCI-Image-Repository mit Ihren Konfigurationsdateien.DIRECTORY
ist der absolute Pfad des Verzeichnisses mit den Ressourcen, die Sie synchronisieren möchten. Lassen Sie dieses Feld leer, um das Stammverzeichnis zu verwenden.SECRET
ist der Secret-Authentifizierungstyp.
Wiederholen Sie diesen Vorgang für jeden Cluster, den Sie synchronisieren möchten.
Weitere Informationen zur Verwendung von Terraform finden Sie unter Terraform-Unterstützung für Config Sync.
Nachdem Sie Ihr Stamm-Repository konfiguriert haben, können Sie optional die Synchronisierung aus mehreren Repositories konfigurieren, einschließlich anderer Stamm-Repositories und Namespace-Repositories. Die Namespace-Repositories sind hilfreich, wenn Sie ein Repository mit Namespace-bezogenen Konfigurationen benötigen, die clusterübergreifend mit einem bestimmten Namespace synchronisiert werden.
Installation überprüfen
Nach der Installation und Konfiguration von Config Sync können Sie prüfen, ob die Installation erfolgreich abgeschlossen wurde.
gcloud
Führen Sie dazu diesen Befehl aus:
nomos status
Eine erfolgreiche Installation hat den Status SYNCED
oder PENDING
.
Weitere Informationen zu den von nomos status
bereitgestellten Informationen, einschließlich gemeldeter Fehler, finden Sie in der Dokumentation zum nomos
-Befehlszeilentool unter Config Sync-Status prüfen.
Console
Gehen Sie folgendermaßen vor:
- Rufen Sie in der Google Cloud -Console im Abschnitt Features die Seite Konfiguration auf.
- Sehen Sie sich auf dem Tab Pakete in der Clustertabelle die Spalte Synchronisierungsstatus an. Eine erfolgreiche Installation von Config Sync hat den Status Installiert. Eine erfolgreich konfigurierte „Source of Truth“ hat den Status Synchronisiert.
Nächste Schritte
- Informationen zum Upgrade von Config Sync.
- Weitere Informationen zu den
gcloud
-Befehlen für das Konfigurieren von Config Sync - Synchronisierung aus Namespace-Repositories konfigurieren
nomos
-Befehl ausführen- Einführung in die Fehlerbehebung bei Config Sync
- Informationen zum Deinstallieren von Config Sync
- Prüfen Sie die Standardberechtigungen für Config Sync.