Synchronisierung mit einem schreibgeschützten Repository

Diese Kurzanleitung zeigt Ihnen die ersten Schritte mit Anthos Config Management in einem neuen Cluster, wobei Sie das foo-corp-Beispiel-Repository verwenden, um einen Cluster mit einer Reihe von Konfigurationen zu booten. Für diese Kurzanleitung benötigen Sie keinen Schreibzugriff zum Repository. Stellen Sie sich vor, ein Compliance-Team in Ihrer Organisation ist für die Erstellung der Konfigurationen verantwortlich und jeder Cluster muss mit dem Repository synchronisiert werden.

Nachdem Sie diese Kurzanleitung abgeschlossen haben, können Sie einer erweiterten Kurzanleitung zum Thema Konfigurationen schreiben, testen und synchronisieren folgen.

Vorbereitung

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Wählen Sie in der Cloud Console auf der Seite für die Projektauswahl ein Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

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

  4. Aktivieren Sie die Anthos API.

    Aktivieren Sie die API

  5. Installieren und initialisieren Sie das Cloud SDK.

Voraussetzungen

Für die Verwaltung von Anthos-Konfigurationen ist eine aktive Anthos-Berechtigung erforderlich. Weitere Informationen finden Sie unter Preisgestaltung für Anthos.

Clustereinrichtung

GKE-Nutzer

  1. Cluster erstellen

  2. Richten Sie den kubectl-Befehl für die Authentifizierung beim Cluster ein und erstellen mit den folgenden Befehlen ein RoleBinding, um sich selbst zu einem Administrator des Clusters zu machen. Geben Sie für [MY-CLUSTER] Ihren Clusternamen und für [USER-ACCOUNT] die E-Mail-Adresse Ihres Google Cloud-Kontos an. Je nachdem, wie Sie den gcloud-Befehl auf Ihrem lokalen System konfiguriert haben, müssen Sie möglicherweise die Felder --project und --zone hinzufügen.

    gcloud container clusters get-credentials [MY-CLUSTER]
    
    kubectl create clusterrolebinding cluster-admin-binding \
        --clusterrole cluster-admin --user [USER_ACCOUNT]
    

GKE On-Prem-Nutzer

Installation von Anthos Config Management

  1. Installieren Sie den nomos-Befehl auf Ihrem lokalen System.

  2. Bei einer manuellen Installation installieren Sie den Config Management Operator auf dem soeben erstellten Cluster.

  3. Registrieren Sie Ihren Cluster mit Connect in einer Anthos-Umgebung.

Cluster konfigurieren

Sie können Ihren Cluster mit kubectl oder der Google Cloud Console konfigurieren.

kubectl

Erstellen Sie eine Datei config-management.yaml und kopieren Sie die folgende YAML-Datei in diese Datei. Da das Repository allgemein lesbar ist, wird secretType auf none gesetzt. Eine Erläuterung der Felder finden Sie unter Konfiguration für das Git-Repository.

apiVersion: configmanagement.gke.io/v1
kind: ConfigManagement
metadata:
  name: config-management
spec:
  # clusterName is required and must be unique among all managed clusters
  clusterName: my-cluster
  git:
    syncRepo: https://github.com/GoogleCloudPlatform/csp-config-management/
    syncBranch: 1.0.0
    secretType: none
    policyDir: "foo-corp"

Wenden Sie die Konfiguration auf Ihren Cluster an:

kubectl apply -f config-management.yaml

Wenn der Befehl erfolgreich ist, aktualisiert Kubernetes den Config Management Operator in Ihrem Cluster, um mit der Synchronisierung der Clusterkonfiguration aus dem Repository zu beginnen. Listen Sie alle im Namespace config-management-system ausgeführten Pods auf, um zu prüfen, ob der Config Management Operator ausgeführt wird:

kubectl get pods -n config-management-system

Ausgabe:

NAME                                   READY     STATUS    RESTARTS   AGE
git-importer-5f8bdb59bd-7nn5m          2/2       Running   0          2m
monitor-58c48fbc66-ggrmd               1/1       Running   0          2m
syncer-7bbfd7686b-dxb45                1/1       Running   0          2m

Console

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

  1. Rufen Sie in der Google Cloud Console das Menü von Anthos Config Management auf.

    Zum Anthos Config Management-Menü

  2. Wählen Sie Ihren registrierten Cluster aus und klicken Sie auf Configure (Konfigurieren).

  3. Führen Sie im Abschnitt Git Repository Authentication für ACM Folgendes aus:

    1. Wählen Sie als Secret-Typ None aus, da das Repository in diesem Beispiel allgemein lesbar ist.
    2. Klicken Sie auf Weiter.
  4. Führen Sie im Abschnitt ACM-Einstellungen für Ihre Cluster folgende Schritte aus:

    1. Fügen Sie im Feld URL https://github.com/GoogleCloudPlatform/csp-config-management/ hinzu.
    2. Fügen Sie im Feld Branch 1.0.0 hinzu.
    3. Klicken Sie auf Show advanced options.
    4. Fügen Sie im Feld Richtlinienverzeichnis foo-corp hinzu.
  5. Klicken Sie auf Fertig. Sie werden zum Anthos Config Management-Menü zurückgeleitet. Aktualisieren Sie die Seite nach einigen Minuten. In der Statusspalte sollte neben dem von Ihnen konfigurierten Cluster Synced angezeigt werden.

Cluster und Repository untersuchen

Das Repository foo-corp enthält Konfigurationen in den Verzeichnissen cluster/ und namespaces/. Diese Konfigurationen werden angewendet, sobald der Config Management Operator für den Lesezugriff auf das Repository konfiguriert wurde.

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

Listen Sie die von Anthos Config Management verwalteten Namespaces auf:

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

Ausgabe:

NAME               STATUS   AGE
audit              Active   4m
shipping-dev       Active   4m
shipping-prod      Active   4m
shipping-staging   Active   4m

Prüfen Sie die Konfigurationen, durch die diese Namespaces erstellt wurden, z. B. namespaces/audit/namespace.yaml und namespaces/online/shipping-app-backend/shipping-dev/namespace.yaml.

Listen Sie die von Anthos Config Management verwalteten ClusterRoles auf:

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

Ausgabe:

NAME               AGE
namespace-reader   6m52s
pod-creator        6m52s

Prüfen Sie die Deklaration der ClusterRole-Konfigurationen:

  • cluster/namespace-reader-clusterrole.yaml
  • cluster/pod-creator-clusterrole.yaml

Sie können andere Objekte wie Roles und PodSecurityPolicies auf dieselbe Weise prüfen.

Versuchen, ein verwaltetes Objekt manuell zu ändern

Wenn Sie ein von Anthos Config Management verwaltetes Kubernetes-Objekt manuell ändern, wird die Konfiguration dieses Objekts automatisch an die Konfiguration des entsprechenden Objekts in Ihrem Repository angepasst. Sie können dies dadurch testen, dass Sie den Namespace shipping-dev löschen.

kubectl delete namespace shipping-dev

Wenn Sie die Prüfung sofort ausführen, fehlt der Namespace möglicherweise. Innerhalb weniger Sekunden ist er aber wieder vorhanden: Beispiel:

kubectl get ns shipping-dev

Ausgabe:

Error from server (NotFound): namespaces "shipping-dev" not found

Sekunden später:

kubectl get ns shipping-dev

Ausgabe:

NAME           STATUS   AGE
shipping-dev   Active   3s

Bereinigen

Nachdem Sie die Übungen in diesem Thema abgeschlossen haben, können Sie den Cluster, den Sie zum Testen verwendet haben, zur Bereinigung löschen.

Nächste Schritte