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, registrieren Sie sich hier für ein neues Konto.

  2. Wählen Sie in der Cloud Console auf der Projektauswahlseite 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 Preise für Anthos.

Clustereinrichtung

  • GKE-Nutzer:

    1. Cluster erstellen

    2. Richten Sie den kubectl-Befehl für die Authentifizierung beim Cluster ein und erstellen Sie mithilfe der folgenden Befehle ein RoleBinding, um sich selbst zum Cluster-Administrator zu machen. Verwenden Sie für [MY-CLUSTER] Ihren Clusternamen an und für [USER-ACCOUNT] die E-Mail-Adresse Ihres Google Cloud-Kontos. Abhängig davon, wie Sie den Befehl gcloud 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]
      
  • Anthos GKE On-Prem-Nutzer:

  • Alle Nutzer:

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

    2. Installieren Sie den Config Management Operator im soeben erstellten Cluster.

    3. Registrieren Sie Ihren Cluster in einem Anthos-Environ mit Connect.

Cluster konfigurieren

Erstellen Sie eine Datei config-management.yaml und kopieren Sie die folgende YAML hinein. In der Installationsanleitung finden Sie Erläuterungen zu den Feldern. Da das Repository allgemein lesbar ist, wird secretType auf none gesetzt.

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. Um zu verifizieren, ob der Config Management Operator ausgeführt wird, listen Sie alle Pods auf, die im Namespace config-management-system ausgeführt werden:

kubectl get pods -n config-management-system
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

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
NAME               STATUS   AGE
audit              Active   4m
shipping-dev       Active   4m
shipping-prod      Active   4m
shipping-staging   Active   4m

Untersuchen 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
NAME               AGE
namespace-reader   6m52s
pod-creator        6m52s

Untersuchen Sie die ClusterRole-Konfigurationen, in denen diese deklariert sind:

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

Sie können andere Objekte wie Rollen und PodSecurityPolicies auf dieselbe Weise untersuchen.

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. Um dies zu testen, löschen Sie den Namespace shipping-dev.

kubectl delete namespace shipping-dev

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

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

Sekunden später:

kubectl get ns shipping-dev
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.

Weitere Informationen