Kurzanleitung: Konfigurationen aus einem Git-Repository synchronisieren

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

  1. 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.
  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 (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 (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. Make sure that you have the following role or roles on the project: Kubernetes Engine Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. 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.

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

    1. In the Google Cloud console, go to the IAM page.

      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. Wählen Sie in der Liste Rolle auswählen eine Rolle aus.
    6. Klicken Sie auf Weitere Rolle hinzufügen, wenn Sie weitere Rollen zuweisen möchten.
    7. Klicken Sie auf Speichern.
    8. 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:

      1. Aktivieren Sie die Google Kubernetes Engine API.

        Zur 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 Bereich Autopilot die Option Konfigurieren aus.

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

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

      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:

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

        Zu „Config“

      2. Klicken Sie auf Config Sync installieren.
      3. Wählen Sie die Config Sync-Version aus, die Sie verwenden möchten.
      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 der Status für cs-cluster als Aktiviert angezeigt werden.
      6. Klicken Sie im 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 den Wert 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 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 das root-Repository dargestellt werden, von Konfigurationen auf Namespace-Ebene getrennt sind, die durch das namespaces-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:

      • 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. Dieses RepoSync-Objekt weist Config Sync an, Konfigurationen für den Namespace gamestore über einen 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önnten 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 Inventardaten für die Anwendung gamestore. 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

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

        Zur 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