Kurzanleitung: Synchronisierung aus mehreren Repositories

In dieser Kurzanleitung erstellen Sie einen neuen GKE-Cluster (Google Kubernetes Engine) und verwenden Config Sync, um Konfigurationen im Beispiel-Repository von Anthos Config Management zu synchronisieren.

Stellen Sie sich vor, Ihr Compliance-Team ist dafür verantwortlich, dass alle Mitarbeiter Ihrer Organisation die internen Regeln befolgen. Zur Durchsetzung dieser Regeln hat das Compliance-Team Konfigurationen erstellt, die dem Beispiel-Repository hinzugefügt wurden. Jeder Cluster in Ihrer Organisation muss mit dem Repository synchronisiert werden. Sie sind dafür verantwortlich, Cluster zu erstellen und zu synchronisieren.

Hinweis

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch 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.

    Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

    Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

    Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

    Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

Umgebung vorbereiten

In den folgenden Abschnitten erstellen und konfigurieren Sie einen Cluster, den Sie mit Config Sync verwenden können.

Cluster erstellen

Führen Sie die folgenden Schritte aus, um einen Cluster zu erstellen, den Sie mit Config Sync verwenden können:

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

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie auf Erstellen.

  3. Klicken Sie unter Standard auf Konfigurieren.

  4. Geben Sie im Bereich Clustergrundlagen Folgendes ein:

    1. Geben Sie cs-cluster als Namen für den Cluster ein.
    2. Übernehmen Sie für alle anderen Felder die empfohlenen Standardeinstellungen.
  5. Wählen Sie im Menü links unter Cluster die Option Sicherheit aus.

  6. Klicken Sie auf der Seite Sicherheit das Kästchen Workload Identity aktivieren an.

  7. Klicken Sie auf Erstellen. Es kann einige Minuten dauern, bis der Cluster erstellt ist.

Eigene Administratorberechtigungen erteilen

Weisen Sie sich nach dem Erstellen des Clusters die Rolle GKE-Hub-Administrator zu, die Sie für die Verwendung von Config Sync in der Google Cloud Console benötigen.

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

    IAM aufrufen

  2. Klicken Sie auf Add.

  3. Geben Sie in das Feld Neue Hauptkonten die E-Mail-Adresse ein, mit der Sie sich bei Google Cloud registriert haben.

  4. Suchen Sie in der Drop-down-Liste Rolle auswählen nach GKE Hub-Administrator und wählen Sie ihn aus.

  5. Klicken Sie auf Speichern.

Anthos Config Management aktivieren

Um Anthos Config Management zu aktivieren, führen Sie die folgenden Schritte aus:

  1. Rufen Sie in der Cloud Console die Seite Config Management auf.

    Zu Config Management

  2. Klicken Sie auf Config Management einrichten.

  3. Klicken Sie auf Weiter, um die Config Management API zu aktivieren. Nachdem Sie auf Weiter geklickt haben, werden Sie zur Seite Registrierte Cluster für Config Management auswählen weitergeleitet, auf der Sie Ihren Cluster registrieren können.

Cluster registrieren

Nachdem der Cluster erstellt wurde, registrieren Sie ihn in einer Flotte:

  1. Suchen Sie auf der Seite Registrierte Cluster für Config Management auswählen die Tabelle Nicht registrierte Cluster aus diesem Projekt und darin cs-cluster.
  2. Klicken Sie neben cs-cluster auf Registrieren.

    Nach der erfolgreichen Registrierung des Clusters wird er in der Tabelle Registrierte Cluster für Config Management auswählen angezeigt.

Cluster konfigurieren

Nachdem Sie einen Cluster erstellt haben, können Sie Config Sync für die Synchronisierung mit den Konfigurationen im Verzeichnis quickstart des Beispiel-Repositorys von Anthos Config Management konfigurieren.

Führen Sie die folgenden Schritte aus, um Config Sync in der Google Cloud Console zu konfigurieren:

  1. Wählen Sie in der Tabelle Registrierte Cluster für Config Management auswählen die Option cs-cluster aus und klicken Sie auf Weiter.
  2. Wählen Sie auf der nun angezeigten Seite Config Sync die Anthos Config Management-Version 1.7.0 oder höher aus. Diese Version ermöglicht standardmäßig das Synchronisieren aus mehreren Repositories.
  3. Lassen Sie das Kästchen Config Sync aktivieren angeklickt.
  4. Fügen Sie im Feld URL https://github.com/GoogleCloudPlatform/anthos-config-management-samples hinzu.
  5. Wählen Sie in der Drop-down-Liste Authentifizierungstyp die Option Keine aus.
  6. Fügen Sie im Feld Branch main hinzu.
  7. Lassen Sie das Feld Tag/Commit leer, da wir den Standardwert HEAD verwenden.
  8. Fügen Sie im Feld Richtlinienverzeichnis quickstart/multirepo/root hinzu.
  9. Lassen Sie Synchronisierungswartezeit und Git-Proxy leer, da wir dafür die Standardwerte von 15 Sekunden bzw. HTTPS verwenden.
  10. Wählen Sie in der Drop-down-Liste Quellformat die Option unstrukturiert aus. Wir empfehlen die Verwendung des unstrukturierten Formats, da Sie damit Ihre Konfigurationen so verwalten können, wie es für Sie am besten ist.
  11. Klicken Sie auf Next (Weiter).
  12. Entfernen Sie das Häkchen aus dem Kästchen Policy Controller aktivieren und klicken Sie auf Abgeschlossen.

    Sie werden zum Config Management-Menü zurückgeleitet. Nach einigen Minuten sollte in der Spalte Config Sync-Status neben 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.

Config Sync-Installation untersuchen und testen

In den folgenden Abschnitten untersuchen Sie mit Cloud Shell Ihre Installation von Config Sync und versuchen dann, ein verwaltetes Objekt zu ändern.

Cloud Shell öffnen

Führen Sie die folgenden Befehle aus, um Cloud Shell zu starten:

  1. Öffnen Sie die Google Cloud Console.

    Zur Google Cloud Console

  2. Klicken Sie in der oberen rechten Ecke der Console auf die Schaltfläche Cloud Shell aktivieren:

    In einem Frame im unteren Teil der Console wird eine Cloud Shell-Sitzung geöffnet. Verwenden Sie diese Shell zum Ausführen der Befehle gcloud, nomos und kubectl.

  3. Um die Befehle in den folgenden Abschnitten verwenden zu können, konfigurieren Sie den Zugriff auf die kubectl-Befehlszeile mit dem folgenden Befehl:

    gcloud container clusters get-credentials cs-cluster \
        --zone ZONE \
        --project PROJECT_ID
    

    Dabei gilt:

    • ZONE: Zone, in der Sie den Cluster erstellt haben
    • PROJECT_ID: Ihre Projekt-ID

    Erwartete Ausgabe:

    Fetching cluster endpoint and auth data.
    kubeconfig entry generated for cs-cluster.
    

Cluster und Repository untersuchen

Das Verzeichnis quickstart enthält ClusterRole, CustomResourceDefinition, Konfigurationen für den Prometheus-Operator für Monitoring, Rolebinding, Namespace und RepoSync. Diese Konfigurationen werden angewendet, sobald Config Sync für den Lesezugriff auf das Repository konfiguriert wurde.

Für alle von Config Sync verwalteten Objekte ist das Label app.kubernetes.io/managed-by auf configmanagement.gke.io gesetzt.

Führen Sie den folgenden Befehl aus, um von Config Sync verwaltete Namespaces aufzulisten:

kubectl get ns -l app.kubernetes.io/managed-by=configmanagement.gke.io

Erwartete Ausgabe:

NAME         STATUS   AGE
gamestore    Active   58s
monitoring   Active   58s

Sie können zum Ordner /quickstart/multirepo/ des Anthos Config Management-Repositorys in GitHub gehen, um sich mit den Konfigurationen vertraut zu machen, die die Erstellung dieser Namespaces verursacht haben.

Sie können andere Objekte wie ClusterRole, Reposyncs, CRDs und Rolebindings auf dieselbe Weise prüfen.

Versuchen, ein verwaltetes Objekt manuell zu ändern

Config Sync verhindert die Mutation verwalteter Objekte über den Zulassungs-Webhook.

Wenn Sie versuchen, eine in Konflikt stehende Änderung vorzunehmen, indem Sie ein von Config Sync verwaltetes Kubernetes-Objekt manuell ändern, erhalten Sie eine Fehlermeldung.

Um dieses Verhalten zu testen, versuchen Sie, den Namespace gamestore zu löschen.

kubectl delete namespace gamestore

Erwartete Ausgabe:

error: admission webhook "v1.admission-webhook.configsync.gke.io" denied the request: requester is not authorized to delete managed resources

Bereinigen

Wenn Sie der Anleitung unter Konfigurationen schreiben für Config Sync folgen möchten, bereinigen Sie dies noch nicht. Diese Kurzanleitung ist eine Voraussetzung für dieses Thema, das auch Anleitungen zum Bereinigen enthält.

Wenn Sie diese Anleitung nicht ausführen möchten, können Sie den Cluster, den Sie für diese Anleitung verwendet haben, zur Bereinigung löschen:

  1. Rufen Sie in der 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