In dieser Kurzanleitung erfahren Sie, wie Sie mit Config Sync einen GitOps-Ansatz zur 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:
- Konsistenz erzwingen:Mit Config Sync können Sie dafür sorgen, 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, wodurch es einfacher wird, Sicherheitsrichtlinien durchzusetzen.
- Geschwindigkeit erhöhen:Sie können die Bereitstellung von Konfigurationsänderungen automatisieren, sodass Sie Änderungen schneller und zuverlässiger bereitstellen können.
In dieser Anleitung erstellen Sie einen GKE-Cluster und konfigurieren Config Sync, um Konfigurationsdateien aus einem Beispiel-Repository zu synchronisieren. Diese Anleitung hilft Ihnen, die Funktionsweise von Config Sync zu verstehen und Erfahrungen mit der Verwendung von Config Sync zur konsistenten und automatisierten Verwaltung Ihrer Cluster zu sammeln.
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. 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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Sie benötigen die folgende Rolle oder die folgenden Rollen für das Projekt: Kubernetes Engine-Administrator
Rollen prüfen
-
Rufen Sie in der Google Cloud Console die Seite IAM auf.
IAM aufrufen - Wählen Sie das Projekt aus.
-
Suchen Sie in der Spalte Hauptkonto nach allen Zeilen, in denen Sie oder eine Gruppe, zu der Sie gehören, angegeben sind. Fragen Sie Ihren Administrator, zu welchen Gruppen Sie gehören.
- Prüfen Sie in allen Zeilen, in denen Sie angegeben oder enthalten sind, die Rolle Spalte , um zu sehen, ob die Liste der Rollen die erforderlichen Rollen enthält.
Rollen zuweisen
-
Rufen Sie in der Google Cloud Console die Seite IAM auf.
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.
- Klicken Sie auf Rolle auswählen und suchen Sie nach der Rolle.
- Klicken Sie auf Add another role, wenn Sie weitere Rollen zuweisen möchten.
- Klicken Sie auf Speichern.
-
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.
Führen Sie die folgenden Schritte aus, um einen Cluster zu erstellen:
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 Abschnitt Autopilot die Option Konfigurieren aus.
Geben Sie im Abschnitt Clustergrundlagen im Feld Name
cs-clusterein. Übernehmen Sie für alle anderen Felder die empfohlenen Standardeinstellungen.Klicken Sie auf Erstellen. Sie werden zur Seite Kubernetes-Cluster weitergeleitet. Es kann einige Minuten dauern, bis der Cluster erstellt ist. Wenn in der Spalte Status neben Ihrem Cluster ein grünes Häkchen angezeigt wird, ist er bereit.
Cluster konfigurieren
Nachdem Sie einen Cluster erstellt haben, können Sie Config Sync so konfigurieren, dass Konfigurationsdateien aus einem Git-Repository synchronisiert werden.
Führen Sie die folgenden Schritte aus, um Config Sync in der Google Cloud Console zu konfigurieren:
- Rufen Sie in der Google Cloud Console im Abschnitt Features die Seite Config auf.
- Klicken Sie auf add Config Sync installieren.
- Wählen Sie die gewünschte Config Sync-Version aus.
- 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-clusteraus und klicken Sie auf Config Sync installieren. Nach einigen Minuten sollte auf dem Tab Einstellungen fürcs-clusterder Status Aktiviert angezeigt werden. - Klicken Sie auf dem Config Sync-Dashboard auf Clusterpaket bereitstellen.
- Wählen Sie in der Tabelle Cluster für die Paketbereitstellung auswählen die Option
cs-clusteraus und klicken Sie dann auf Weiter. - Lassen Sie Paket gehostet auf Git aktiviert und klicken Sie dann auf Weiter.
- Geben Sie im Feld Paketname
sample-repositoryein. - Geben Sie im Feld Repository-URL
https://github.com/GoogleCloudPlatform/anthos-config-management-samplesein. - Geben Sie im Feld Pfad
config-sync-quickstart/multirepo/rootein. - 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-clusterder Wert Synchronisiert angezeigt werden.
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 ansehen möchten, rufen Sie den Tab Pakete auf und klicken Sie auf cs-cluster. Auf der Detailseite des Pakets finden Sie eine Übersicht aller synchronisierten Ressourcen, einschließlich des Ressourcentyps und des Namespaces, mit dem die Ressource synchronisiert wurde.
(Optional) Beispiel-Repository ansehen
Die auf Ihren Cluster angewendeten Konfigurationen sind im
/config-sync-quickstart/multirepo/
Repository definiert. Dieses Beispiel zeigt eine Einrichtung mit mehreren Repositories, bei der Konfigurationen auf Clusteradministratorebene, dargestellt durch das Repository root, von Konfigurationen auf Namespace-Ebene, dargestellt durch das Repository namespaces, getrennt sind. In diesem Beispiel sind diese Konfigurationen in verschiedene Ordner aufgeteilt. In der Praxis können Sie Konfigurationen in zwei verschiedenen Repositories mit unterschiedlichen Zugriffsberechtigungen speichern.
Im Allgemeinen werden Cluster- oder Stamm-Repositories 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.
Einige der wichtigsten Dateitypen, die Sie in einem Stamm-Repository speichern können, sind:
- Namespace-Erstellung:Dateien wie
namespace-gamestore.yamlerstellen die Namespaces selbst. - Clusterbezogene Ressourcen:Dateien, die den gesamten Cluster betreffen, umfassen Ressourcen wie
ClusterRole-Objekte, die clusterweite Rollen hinzufügen, mit denen Berechtigungen gewährt werden. - 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 Namespacegamestoreaus einem anderen Pfad zu synchronisieren. In diesem Beispiel verweist dasRepoSync-Objekt auf das Verzeichnisconfig-sync-quickstart/multirepo/ namespaces/gamestoreim selben Repository. In der Praxis können Sie jedoch auf ein anderes Git-Repository verweisen.
Das Namespace-Repository enthält anwendungsspezifische Konfigurationen für den Namespace gamestore. Die Datei configmap-inventory.yaml enthält beispielsweise Bestandsdaten für die Anwendung gamestore. Mit dieser Art von GitOps-Einrichtung können Anwendungsteams mehr Autonomie über ihre eigenen Bereitstellungen und Namespace-bezogenen Ressourcen haben, ohne das zentrale Stamm-Repository ändern zu müssen.
Bereinigen
Rufen Sie in der Google Cloud Console das GKE-Menü auf.
Klicken Sie neben
cs-clusterauf 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.