Kurzanleitung: Konfigurationen aus einem Repository synchronisieren
In dieser Anleitung erstellen Sie einen GKE-Cluster (Google Kubernetes Engine) und verwenden Config Sync zum Synchronisieren mit Konfigurationen im Multi-Repo-Repository für Anthos Config Management.
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.
Hinweise
- 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.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
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 Google Cloud-Projekt muss aktiviert sein.
-
Prüfen Sie, ob Sie die folgenden Rollen für das Projekt haben: GKE Hub Admin
Auf Rollen prüfen
-
Öffnen Sie in der Google Cloud Console die Seite IAM.
IAM aufrufen - Wählen Sie das Projekt aus.
-
Suchen Sie in der Spalte Hauptkonto die Zeile mit Ihrer E-Mail-Adresse.
Ist Ihre E-Mail-Adresse nicht in dieser Spalte enthalten, haben Sie keine Rollen.
- Prüfen Sie in der Spalte Rolle der Zeile mit Ihrer E-Mail-Adresse, ob die Liste der Rollen die erforderlichen Rollen enthält.
Rollen zuweisen
-
Öffnen Sie in der Google Cloud Console die Seite IAM.
IAM aufrufen - Wählen Sie das Projekt aus.
- Klicken Sie auf Zugriff erlauben.
- Geben Sie in das Feld Neue Hauptkonten Ihre E-Mail-Adresse ein.
- Wählen Sie in der Liste Rolle auswählen eine Rolle aus.
- Wenn Sie weitere Rollen hinzufügen möchten, klicken Sie auf Weitere Rolle hinzufügen und fügen Sie weitere Rollen hinzu.
- Klicken Sie auf Speichern.
-
Cluster erstellen
In diesem Abschnitt erstellen Sie einen Cluster, den Sie in dieser Anleitung verwenden können. In einem realen Szenario würden Sie wahrscheinlich mehrere Cluster verwalten. Zum Vereinfachen dieser Anleitung erstellen und verwalten Sie jedoch nur einen Cluster.
So erstellen Sie einen Cluster:
Rufen Sie in der Google Cloud Console die Seite Kubernetes Engine auf.
Wenn Sie GKE zum ersten Mal verwenden, klicken Sie auf Aktivieren, um die Kubernetes Engine API zu aktivieren.
Klicken Sie auf add_box Erstellen.
Wählen Sie im Abschnitt Autopilot die Option Konfigurieren aus.
Geben Sie im Abschnitt Clustergrundlagen
cs-cluster
in das Feld Name ein und übernehmen Sie für alle anderen Felder die empfohlenen Standardeinstellungen.Klicken Sie auf Erstellen. Sie werden zur Seite Kubernetes-Cluster weitergeleitet. Das Erstellen des Clusters kann einige Minuten dauern. Wenn in der Spalte Status neben Ihrem Cluster ein grünes Häkchen angezeigt wird, ist der Cluster bereit.
Cluster konfigurieren
Nachdem Sie einen Cluster erstellt haben, können Sie Config Sync für die Synchronisierung mit den Konfigurationen im config-sync-quickstart
-Verzeichnis des Anthos Config Management-Beispiel-Repositorys konfigurieren.
Führen Sie die folgenden Schritte aus, um Config Sync in der Google Cloud Console zu konfigurieren:
Aktivieren Sie in der Google Cloud Console die GKE Hub API.
Rufen Sie in der Google Cloud Console das Config Sync-Dashboard auf.
Klicken Sie im Feld Config Sync-Einstellungen auf add Config Sync installieren.
Wählen Sie in der Tabelle Verfügbare Cluster die Option
cs-cluster
aus und klicken Sie auf Weiter.Entfernen Sie das Häkchen aus dem Kästchen Policy Controller aktivieren und klicken Sie auf Weiter.
Lassen Sie das Kästchen Config Sync aktivieren angeklickt.
Wählen Sie in der Liste Repository die Option Benutzerdefiniert.
Fügen Sie im Feld URL
https://github.com/GoogleCloudPlatform/anthos-config-management-samples
hinzu.Klicken Sie auf
Erweiterte Einstellungen anzeigen.Fügen Sie im Feld Konfigurationsverzeichnis
config-sync-quickstart/multirepo/root
hinzu.Übernehmen Sie für alle anderen Felder die Standardwerte.
Klicken Sie auf Abgeschlossen.
Sie werden auf die Seite mit den Config Sync-Einstellungen weitergeleitet. Nach einigen Minuten sollte in der Spalte Config Sync-Status für
cs-cluster
der Status 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 installieren
In den folgenden Abschnitten sehen Sie sich mithilfe von Cloud Shell das Repository an, von dem cs-cluster
synchronisiert wird, und prüfen, ob die Konfigurationen im Repository bereitgestellt werden.
Cloud Shell öffnen
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
-
Wenn Sie die Befehle in den folgenden Abschnitten verwenden möchten, konfigurieren Sie den Befehlszeilenzugriff
kubectl
:gcloud container clusters get-credentials cs-cluster \ --zone ZONE \ --project PROJECT_ID
Ersetzen Sie Folgendes:
ZONE
: Zone, in der Sie den Cluster erstellt habenPROJECT_ID
: Ihre Projekt-ID.
Die Ausgabe sieht so aus:
Fetching cluster endpoint and auth data. kubeconfig entry generated for cs-cluster.
Wenn Sie zur Autorisierung aufgefordert werden, klicken Sie auf Autorisieren.
Cluster und Repository untersuchen
Das Verzeichnis config-sync-quickstart
enthält ClusterConfig-, CustomResourceDefinition-, Rolebinding-, Namespace- und RepoSync-Konfigurationen. Außerdem enthält er Konfigurationen für den Prometheus-Operator in Monitoring.
Diese Konfigurationen werden angewendet, sobald Config Sync zum Lesen aus dem Repository konfiguriert wurde.
Für alle von Config Sync verwalteten Objekte ist das Label app.kubernetes.io/managed-by
auf configmanagement.gke.io
gesetzt. Mit diesem Label können Sie verwaltete Objekte aufrufen.
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
Die Ausgabe sieht in etwa so aus:
NAME STATUS AGE
gamestore Active 58s
monitoring Active 58s
Sie können zum Ordner /config-sync-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.
Synchronisierungsstatus prüfen
Wenn Sie Config Sync verwenden, können Sie das nomos
-Befehlszeilentool verwenden. Dieses Tool bietet Ihnen zusätzliche Funktionen für Config Sync.
In diesem Abschnitt prüfen Sie mit dem Befehl nomos status
, ob Config Sync alle Konfigurationen erfolgreich mit Ihrem Cluster synchronisiert hat:
nomos status
Die Ausgabe sieht in etwa so aus:
*gke_PROJECT_ID_ZONE_cs-cluster
--------------------
<root>:root-sync https://github.com/GoogleCloudPlatform/anthos-config-management-samples/config-sync-quickstart/multirepo/root@main
SYNCED @ 2023-02-03 16:58:42 +0000 UTC 1fbab5c90af9029b26451fec92e9900d8db23aee
Managed resources:
NAMESPACE NAME STATUS SOURCEHASH
clusterrole.rbac.authorization.k8s.io/namespace-reader Current 1fbab5c
clusterrole.rbac.authorization.k8s.io/prometheus-acm Current 1fbab5c
clusterrole.rbac.authorization.k8s.io/prometheus-operator Current 1fbab5c
clusterrole.rbac.authorization.k8s.io/webstore-admin Current 1fbab5c
clusterrolebinding.rbac.authorization.k8s.io/prometheus-acm Current 1fbab5c
clusterrolebinding.rbac.authorization.k8s.io/prometheus-operator Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/alertmanagerconfigs.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/alertmanagers.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/anvils.acme.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/podmonitors.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/probes.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/prometheuses.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/prometheusrules.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/servicemonitors.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/thanosrulers.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/webstores.marketplace.com Current 1fbab5c
namespace/gamestore Current 1fbab5c
namespace/monitoring Current 1fbab5c
gamestore reposync.configsync.gke.io/repo-sync Current 1fbab5c
gamestore rolebinding.rbac.authorization.k8s.io/gamestore-admin Current 1fbab5c
gamestore rolebinding.rbac.authorization.k8s.io/gamestore-webstore-admin Current 1fbab5c
monitoring deployment.apps/prometheus-operator Current 1fbab5c
monitoring prometheus.monitoring.coreos.com/acm Current 1fbab5c
monitoring service/prometheus-acm Current 1fbab5c
monitoring service/prometheus-operator Current 1fbab5c
monitoring serviceaccount/prometheus-acm Current 1fbab5c
monitoring serviceaccount/prometheus-operator Current 1fbab5c
monitoring servicemonitor.monitoring.coreos.com/acm-service Current 1fbab5c
--------------------
gamestore:repo-sync https://github.com/GoogleCloudPlatform/anthos-config-management-samples/config-sync-quickstart/multirepo/namespaces/gamestore@main
SYNCED @ 2023-02-03 16:58:51 +0000 UTC 1fbab5c90af9029b26451fec92e9900d8db23aee
Managed resources:
NAMESPACE NAME STATUS SOURCEHASH
gamestore configmap/store-inventory Current 1fbab5c
gamestore webstore.marketplace.com/gameplace Current 1fbab5c
In dieser Ausgabe sehen Sie, dass cs-cluster
erfolgreich aus zwei Repositories synchronisiert wird. Da alle Ressourcen den Status Current
haben, entspricht der Status der Ressource außerdem dem gewünschten Status.
Bereinigen
Rufen Sie in der Google Cloud Console das GKE-Menü auf.
Klicken Sie neben
cs-cluster
auf more_vert Aktionen und dann auf delete Löschen.Wenn Sie zur Bestätigung des Vorgangs aufgefordert werden, klicken Sie noch einmal auf Löschen.