Kurzanleitung: Konfigurationen aus einem Git-Repository synchronisieren

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

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Sie benötigen die folgende Rolle oder die folgenden Rollen für das Projekt: Kubernetes Engine-Administrator

    Rollen prüfen

    1. Rufen Sie in der Google Cloud Console die Seite IAM auf.

      IAM aufrufen
    2. Wählen Sie das Projekt aus.
    3. 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.

    4. 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

    1. Rufen Sie in der Google Cloud Console die Seite IAM auf.

      IAM aufrufen
    2. Wählen Sie das Projekt aus.
    3. Klicken Sie auf „Zugriffsrechte erteilen.
    4. Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Das ist in der Regel die E‑Mail-Adresse eines Google-Kontos.

    5. Klicken Sie auf Rolle auswählen und suchen Sie nach der Rolle.
    6. Klicken Sie auf Add another role, wenn Sie weitere Rollen zuweisen möchten.
    7. 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:

  1. Aktivieren Sie die Google Kubernetes Engine API.

    Zu GKE

  2. Rufen Sie in der Google Cloud Console die Seite Kubernetes Engine auf.

    Zur Seite „Google Kubernetes Engine“

  3. Klicken Sie auf Erstellen.

  4. Wählen Sie im Abschnitt Autopilot die Option Konfigurieren aus.

  5. Geben Sie im Abschnitt Clustergrundlagen im Feld Name cs-cluster ein. Übernehmen Sie für alle anderen Felder die empfohlenen Standardeinstellungen.

  6. 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:

  1. Rufen Sie in der Google Cloud Console im Abschnitt Features die Seite Config auf.

    Zu „Config“

  2. Klicken Sie auf Config Sync installieren.
  3. Wählen Sie die gewünschte Config Sync-Version aus.
  4. Wählen Sie unter Installationsoptionen die Option Config Sync in einzelnen Clustern installieren aus.
  5. 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 für cs-cluster der Status Aktiviert angezeigt werden.
  6. Klicken Sie auf dem Config Sync-Dashboard auf Clusterpaket bereitstellen.
  7. Wählen Sie in der Tabelle Cluster für die Paketbereitstellung auswählen die Option cs-cluster aus und klicken Sie dann auf Weiter.
  8. Lassen Sie Paket gehostet auf Git aktiviert und klicken Sie dann auf Weiter.
  9. Geben Sie im Feld Paketname sample-repository ein.
  10. Geben Sie im Feld Repository-URL https://github.com/GoogleCloudPlatform/anthos-config-management-samples ein.
  11. Geben Sie im Feld Pfad config-sync-quickstart/multirepo/root ein.
  12. Behalten Sie in allen anderen Feldern die Standardwerte bei.
  13. Klicken Sie auf Paket bereitstellen.

    Nach einigen Minuten sollte in der Spalte Synchronisierungsstatus für cs-cluster der 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.yaml erstellen 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. Dieses RepoSync-Objekt weist Config Sync an, Konfigurationen für den Namespace gamestore aus einem anderen Pfad zu synchronisieren. In diesem Beispiel verweist das RepoSync-Objekt auf das Verzeichnis config-sync-quickstart/multirepo/ namespaces/gamestore im 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

  1. Rufen Sie in der Google Cloud Console das GKE-Menü auf.

    Zu GKE

  2. Klicken Sie neben cs-cluster auf Aktionen und dann auf Löschen.

  3. Wenn Sie zur Bestätigung des Vorgangs aufgefordert werden, klicken Sie noch einmal auf Löschen.

Nächste Schritte