In dieser Kurzanleitung werden die ersten Schritte mit Anthos Config Management für einen neuen Cluster beschrieben. Dazu verwenden Sie das Beispiel-Repository „foo-corp“, um einen Cluster mit einer Reihe von Konfigurationen zu booten. Für diese Kurzanleitung benötigen Sie keinen Schreibzugriff auf das Repository. Stellen Sie sich vor, ein Compliance-Team in Ihrer Organisation ist für das Erstellen der Konfigurationen verantwortlich und jeder Cluster muss mit dem Repository synchronisiert werden.
Nach dieser Kurzanleitung können Sie eine erweiterte Kurzanleitung zum Schreiben, Testen und Synchronisieren von Konfigurationen durcharbeiten.
Hinweis
-
Melden Sie sich bei Ihrem Google-Konto an.
Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.
- Aktivieren Sie die Anthos API.
- Installieren und initialisieren Sie das Cloud SDK.
Clustereinrichtung
GKE-Nutzer
Richten Sie den
kubectl
-Befehl für die Authentifizierung beim Cluster ein und erstellen Sie 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 dengcloud
-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
Anthos Config Management – Vorbereitung
Führen Sie die folgenden Schritte aus, um die für diese Kurzanleitung erforderlichen Tools vorzubereiten:
Wenn Sie Anthos Config Management zum ersten Mal verwenden, aktivieren Sie die Funktion über die Google Cloud Console oder das
gcloud
-Befehlszeilentool.Console
So aktivieren Sie Anthos Config Management:
Rufen Sie die Seite „Anthos-Features“ in der Google Cloud Console auf.
Klicken Sie in der Zeile „Config Management“ auf Aktivieren.
Klicken Sie im Bestätigungsfenster auf Config Management aktivieren.
gcloud
Führen Sie den folgenden Befehl aus, um Anthos Config Management zu aktivieren:
gcloud alpha container hub config-management enable
Installieren Sie den Befehl
nomos
auf Ihrem lokalen System.Wenn Sie mit
kubectl
arbeiten möchten, stellen Sie den Config Management Operator auf dem soeben erstellten Cluster ein.Registrieren Sie Ihren Cluster mit Connect in einer Anthos-Umgebung.
Cluster konfigurieren
Sie können Ihren Cluster mit der Google Cloud Console, dem gcloud
-Befehlszeilentool oder kubectl
konfigurieren.
Console
Führen Sie die folgenden Schritte aus, um Anthos Config Management in der Google Cloud Console zu konfigurieren:
Öffnen Sie in der Google Cloud Console das Menü von Anthos Config Management.
Wählen Sie Ihren registrierten Cluster aus und klicken Sie auf Configure (Konfigurieren).
Wählen Sie im Abschnitt Git-Repository-Authentifizierung für ACM die Option Keine aus, da das Repository in diesem Beispiel weltweit lesbar ist.
Klicken Sie auf Weiter.
Führen Sie im Bereich ACM-Einstellungen für Ihre Cluster die folgenden Schritte aus:
- Wählen Sie im Feld Version eine Version für Anthos Config Management aus.
- Klicken Sie das Kästchen Config Sync aktivieren an.
Geben Sie im angezeigten Drop-down-Menü Folgendes ein:
- Fügen Sie im Feld URL
https://github.com/GoogleCloudPlatform/csp-config-management/
hinzu. - Fügen Sie im Feld Branch
1.0.0
hinzu. - Lassen Sie das Feld Tag/Commit leer, da wir den Standardwert
HEAD
verwenden. - Fügen Sie im Feld Richtlinienverzeichnis
foo-corp
hinzu. - Übernehmen Sie die Standardwerte der restlichen Felder.
- Fügen Sie im Feld URL
Klicken Sie auf Fertig. Sie werden zum Anthos Config Management-Menü zurückgeleitet. Nach einigen Minuten sollte in der Statusspalte neben dem von Ihnen konfigurierten Cluster
Synced
angezeigt werden.
gcloud
Erstellen Sie eine Datei config-management.yaml
und kopieren Sie die folgende YAML-Datei in diese Datei.
Da das Repository für den Menschen lesbar ist, wird secretType
auf none
gesetzt. Eine Erläuterung der Felder finden Sie unter Konfiguration für das Git-Repository.
Erstellen Sie eine Datei
config-management.yaml
und kopieren Sie die folgende YAML-Datei in diese Datei.# config-management.yaml apiVersion: configmanagement.gke.io/v1 kind: ConfigManagement metadata: name: config-management namespace: config-management-system spec: git: syncRepo: https://github.com/GoogleCloudPlatform/csp-config-management/ syncBranch: 1.0.0 secretType: none policyDir: "foo-corp"
Legen Sie eine Variable fest:
export CONFIG_YAML=PATH_TO_CONFIG_YAML
Wenden Sie die Datei
config-management.yaml
an:gcloud alpha container hub config-management apply \ --membership=CLUSTER_NAME \ --config=CONFIG_YAML \ --project=PROJECT_ID
Dabei gilt:
- CLUSTER_NAME: Fügen Sie den registrierten Cluster hinzu, auf den Sie diese Konfiguration anwenden möchten.
- PROJECT_ID: Fügen Sie Ihre Projekt-ID hinzu.
kubectl
Erstellen Sie eine Datei config-management.yaml
und kopieren Sie die folgende YAML-Datei in diese Datei.
Da das Repository für den Menschen 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.
Prüfen Sie, ob Anthos Config Management ausgeführt wird, indem Sie alle Pods auflisten, die im Namespace config-management-system
ausgeführt werden:
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
Cluster und Repository untersuchen
Das Repository foo-corp
enthält Konfigurationen in den Verzeichnissen cluster/
und namespaces/
. Diese Konfigurationen werden angewendet, sobald Anthos Config Management für den Lesezugriff auf das Repository konfiguriert ist.
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 machen, 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
Wenn Sie der erweiterten Kurzanleitung folgen möchten, bereinigen Sie sie noch nicht. Diese Kurzanleitung ist eine Voraussetzung für dieses Thema, das auch Anleitungen zum Bereinigen enthält.
Wenn Sie die erweiterte Kurzanleitung nicht verwenden möchten, können Sie den Cluster bereinigen, den Sie zum Testen verwendet haben.
Nächste Schritte
- Erweiterte Kurzanleitung zum Schreiben, Testen und Synchronisieren von Konfigurationen durcharbeiten
- Kubernetes-Objekte konfigurieren
- Konfigurationen validieren