In dieser Kurzanleitung wird gezeigt, wie Sie mit Config Sync einen GitOps-Ansatz für die Verwaltung Ihrer Google Kubernetes Engine-Cluster implementieren. Bei einem GitOps-Workflow verwenden Sie ein Git-Repository als zentrale Informationsquelle für Ihre Clusterkonfigurationen.
Die Verwendung von Config Sync bietet folgende Vorteile:
- Einheitlichkeit erzwingen:Damit wird sichergestellt, dass alle Ihre Cluster dieselbe Konfiguration haben, wodurch das Risiko von Konfigurationsabweichungen verringert wird.
- Sicherheit verbessern:Sie können Ihre Clusterkonfigurationen zentral verwalten und prüfen, um Sicherheitsrichtlinien einfacher durchzusetzen.
- Geschwindigkeit erhöhen:Automatisieren Sie die Einführung von Konfigurationsänderungen, damit Sie Änderungen schneller und zuverlässiger bereitstellen können.
In dieser Anleitung erstellen Sie einen GKE-Cluster und konfigurieren Config Sync für die Synchronisierung von Konfigurationsdateien aus einem Beispiel-Repository. In dieser Anleitung erfahren Sie, wie Config Sync funktioniert. Außerdem können Sie Config Sync verwenden, um Ihre Cluster einheitlich und automatisiert zu verwalten.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Make sure that you have the following role or roles on the project: Kubernetes Engine Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
IAM aufrufen - Wählen Sie das Projekt aus.
- Klicken Sie auf Zugriffsrechte erteilen.
-
Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Das ist in der Regel die E‑Mail-Adresse eines Google-Kontos.
- Wählen Sie in der Liste Rolle auswählen eine Rolle aus.
- Klicken Sie auf Weitere Rolle hinzufügen, wenn Sie weitere Rollen zuweisen möchten.
- Klicken Sie auf Speichern.
Aktivieren Sie die Google Kubernetes Engine API.
Rufen Sie in der Google Cloud Console die Seite Kubernetes Engine auf.
Klicken Sie auf add_box Erstellen.
Wählen Sie im Bereich Autopilot die Option Konfigurieren aus.
Geben Sie im Abschnitt Clustergrundlagen
cs-cluster
in das Feld Name ein. Übernehmen Sie für alle anderen Felder die empfohlenen Standardeinstellungen.Klicken Sie auf Erstellen. Sie werden zur Seite Kubernetes-Cluster weitergeleitet. Es dauert einige Minuten, bis der Cluster erstellt ist. Wenn Sie in der Spalte Status neben Ihrem Cluster ein grünes Häkchen sehen, ist er bereit.
- 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 die Option Config Sync in einzelnen Clustern installieren aus.
- Wählen Sie in der Tabelle Verfügbare Cluster die Option
cs-cluster
aus und klicken Sie auf Config Sync installieren. Nach einigen Minuten sollte auf dem Tab Einstellungen der Status fürcs-cluster
als Aktiviert angezeigt werden. - Klicken Sie im Config Sync-Dashboard auf Clusterpaket bereitstellen.
- Wählen Sie in der Tabelle Cluster für die Paketbereitstellung auswählen die Option
cs-cluster
aus und klicken Sie dann auf Weiter. - Lassen Sie Paket gehostet auf Git aktiviert und klicken Sie dann auf Weiter.
- Geben Sie im Feld Paketname den Wert
sample-repository
ein. - Geben Sie im Feld Repository-URL
https://github.com/GoogleCloudPlatform/anthos-config-management-samples
ein. - Geben Sie im Feld Pfad
config-sync-quickstart/multirepo/root
ein. - Behalten Sie in allen anderen Feldern die Standardwerte bei.
Klicken Sie auf Paket bereitstellen.
Nach einigen Minuten sollte in der Spalte Synchronisierungsstatus für
cs-cluster
der Wert Synchronisiert angezeigt werden.- Namespace-Erstellung:Dateien wie
namespace-gamestore.yaml
erstellen die Namespaces selbst. - Ressourcen mit Clusterbereich:Dateien, die sich auf den gesamten Cluster auswirken, umfassen Ressourcen wie
ClusterRole
-Objekte, die clusterweite Rollen hinzufügen, die Berechtigungen gewähren. - Namespace-Repositories verbinden:Die Schlüsseldatei in dieser Einrichtung mit mehreren Repositories ist die Datei
reposync-gamestore.yaml
. DiesesRepoSync
-Objekt weist Config Sync an, Konfigurationen für den Namespacegamestore
über einen anderen Pfad zu synchronisieren. In diesem Beispiel verweist dasRepoSync
-Objekt auf das Verzeichnisconfig-sync-quickstart/multirepo/ namespaces/gamestore
im selben Repository. In der Praxis könnten Sie jedoch auf ein anderes Git-Repository verweisen. Rufen Sie in der Google Cloud Console das GKE-Menü auf.
Klicken Sie neben
cs-cluster
auf more_vert Aktionen und dann auf delete Löschen.Wenn Sie zur Bestätigung des Vorgangs aufgefordert werden, klicken Sie noch einmal auf Löschen.
Cluster erstellen
In diesem Abschnitt erstellen Sie einen Cluster, den Sie in dieser Anleitung verwenden können. In der Praxis würden Sie wahrscheinlich mehrere Cluster verwalten. Zur Vereinfachung dieser Anleitung erstellen und verwalten Sie jedoch nur einen Cluster.
So erstellen Sie einen Cluster:
Cluster konfigurieren
Nachdem Sie einen Cluster haben, können Sie Config Sync so konfigurieren, dass Konfigurationsdateien aus einem Git-Repository synchronisiert werden.
So konfigurieren Sie Config Sync in der Google Cloud Console:
Nachdem Config Sync mit einem Repository synchronisiert wurde, gleicht es den Status Ihrer Cluster kontinuierlich mit den Konfigurationen im Repository ab.
Paketdetails ansehen
Wenn Sie die von Config Sync verwalteten Objekte aufrufen möchten, rufen Sie den Tab Pakete auf und klicken Sie auf
cs-cluster
. Die Seite mit den Paketdetails bietet eine Übersicht aller synchronisierten Ressourcen, einschließlich des Ressourcentyps und des Namespace, mit dem die Ressource synchronisiert wird.(Optional) Beispiel-Repository ansehen
Die auf Ihren Cluster angewendeten Konfigurationen sind im Repository
/config-sync-quickstart/multirepo/
definiert. In diesem Beispiel wird eine Einrichtung mit mehreren Repositories veranschaulicht, bei der Konfigurationen auf Cluster-Administratorebene, die durch dasroot
-Repository dargestellt werden, von Konfigurationen auf Namespace-Ebene getrennt sind, die durch dasnamespaces
-Repository dargestellt werden. In diesem Beispiel sind diese Konfigurationen in verschiedene Ordner aufgeteilt. In der Praxis könnten Sie Konfigurationen in zwei verschiedenen Repositories mit unterschiedlichen Zugriffsberechtigungen speichern.Clusterbezogene oder Stamm-Repositories werden in der Regel von einem zentralen Administrator verwaltet und enthalten clusterweite Ressourcen, Namespace-Konfigurationen und Richtlinien. Repositories auf Namespace-Ebene enthalten in der Regel Konfigurationen, die für einzelne Namespaces spezifisch sind, und werden häufig von Anwendungsteams verwaltet.
Zu den wichtigsten Dateitypen, die Sie in einem Stamm-Repository speichern können, gehören:
Das Namespace-Repository enthält anwendungsspezifische Konfigurationen für den Namespace
gamestore
. Die Dateiconfigmap-inventory.yaml
enthält beispielsweise Inventardaten für die Anwendunggamestore
. Bei dieser Art von GitOps-Einrichtung haben Anwendungsteams mehr Autonomie über ihre eigenen Bereitstellungen und Namespace-bezogenen Ressourcen, ohne das zentrale Stamm-Repository ändern zu müssen.Bereinigen
Nächste Schritte
-