Auf dieser Seite wird beschrieben, wie Sie ein Clusterinventar für eine vorhandene Flotte erstellen. Mit einem Clusterinventar für eine Flotte können Sie Open-Source- und Drittanbieterintegrationen verwenden, die die ClusterProfile-Spezifikation verwenden.
Ein Clusterinventar ist das Open-Source-Äquivalent einer Flotte: eine logische Gruppierung von Kubernetes-Clustern und anderen Ressourcen, die zusammen verwaltet werden können. Die Spezifikation ClusterProfile enthält Informationen, die eine Teilmenge der Informationen in einer Flotte sind.
Die Funktion zur Synchronisierung von Clusterprofilen ist eine unidirektionale Synchronisierung zwischen einer Flotte und einem Clusterinventar. Wenn die ClusterProfile-Synchronisierung aktiviert ist, ist die Flotte die Source of Truth. Alle Änderungen an der Flotte werden durch die ClusterProfile-Synchronisierung automatisch auf das Clusterinventar angewendet. Änderungen, die direkt an den Ressourcen des Clusterprofils vorgenommen werden, werden nicht auf die Flotte angewendet.
Hinweise
Prüfen Sie, ob Sie die allgemeinen Voraussetzungen für die Arbeit mit Flotten erfüllt haben.
Erstellen Sie eine Flotte oder wählen Sie eine vorhandene Flotte aus.
ClusterProfile-Synchronisierung aktivieren
Die Synchronisierung von ClusterProfile wird für einen Cluster in der Flotte ausgeführt. Dieser Cluster wird als Hub-Cluster bezeichnet und kann zum Ausführen von Multi-Cluster-Controllern verwendet werden, die Informationen zu den anderen Clustern in der Flotte benötigen. Beispiele für Multi-Cluster-Controller sind Argo CD-Controller und der Multi-Cluster-Orchestrator. Wir empfehlen, im Hub-Cluster keine anderen Arbeitslasten auszuführen.
Aktivieren Sie die ClusterProfile-Synchronisierung für einen Cluster, indem Sie das Label fleet-clusterinventory-management-cluster=true
hinzufügen. In diesem Fall können Sie folgende Aktionen ausführen:
- Erstellen Sie einen neuen Cluster, der als Hub-Cluster verwendet werden soll. Im folgenden Abschnitt erfahren Sie, wie Sie die Synchronisierung von Clusterprofilen in einem neuen Cluster aktivieren.
- Wählen Sie einen Cluster in der Flotte aus, der als Hub-Cluster verwendet werden soll. Im folgenden Abschnitt erfahren Sie, wie Sie die Synchronisierung von Clusterprofilen für einen vorhandenen Cluster aktivieren.
Nachdem Sie die Funktion zur Synchronisierung von Clusterprofilen für eine Flotte aktiviert haben, wird automatisch ein Clusterprofil für jeden Cluster in der Flotte mit der ClusterProfile-API erstellt. Diese Clusterprofile werden automatisch erstellt, aktualisiert und gelöscht, wenn Änderungen an der Flotte vorgenommen werden.
ClusterProfile-Synchronisierung in einem neuen Cluster aktivieren
Verwenden Sie den folgenden Befehl, um einen Cluster für den Hub-Cluster zu erstellen und die ClusterProfile-Synchronisierung zu aktivieren:
gcloud container clusters create CLUSTER --location LOCATION --enable-fleet
--labels=fleet-clusterinventory-management-cluster=true
Ersetzen Sie Folgendes:
- CLUSTER: der Name Ihrer
google_container_cluster
-Ressource. - LOCATION: Der Standort, an dem der Cluster erstellt wird.
Clusterprofile werden standardmäßig im Namespace fleet-cluster-inventory
erstellt. Geben Sie das Label fleet-clusterinventory-namespace
an, um den Namespace zu ändern.
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-namespace=NAMESPACE
Ersetzen Sie Folgendes:
- CLUSTER: der Name Ihrer
google_container_cluster
-Ressource. - LOCATION: Der Standort, an dem der Cluster erstellt wird.
- NAMESPACE: der Namespace, in dem die Clusterprofile generiert werden.
Wenn nichts angegeben ist, werden die Clusterprofile im Namespace
fleet-cluster-inventory
generiert.
ClusterProfile-Synchronisierung für einen vorhandenen Cluster aktivieren
Verwenden Sie den folgenden Befehl, um die ClusterProfile-Synchronisierung für einen vorhandenen Cluster zu aktivieren:
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-management-cluster=true
Ersetzen Sie Folgendes:
- CLUSTER: der Name Ihrer
google_container_cluster
-Ressource. - LOCATION: Der Standort, an dem der Cluster erstellt wird.
Clusterprofile werden standardmäßig im Namespace fleet-cluster-inventory
erstellt. Geben Sie das Label fleet-clusterinventory-namespace
an, um den Namespace zu ändern.
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-namespace=NAMESPACE
Ersetzen Sie Folgendes:
- CLUSTER: der Name Ihrer
google_container_cluster
-Ressource. - LOCATION: Der Standort, an dem der Cluster erstellt wird.
- NAMESPACE: der Namespace, in dem die Clusterprofile generiert werden.
Wenn nichts angegeben ist, werden die Clusterprofile im Namespace
fleet-cluster-inventory
generiert.
Prüfen, ob die Synchronisierung von Clusterprofilen aktiviert ist
Prüfen Sie, ob die ClusterProfile-Synchronisierung aktiviert ist, indem Sie prüfen, ob der Hub-Cluster das Label fleet-clusterinventory-management-cluster = true
enthält. Verwenden Sie dazu den folgenden Befehl:
gcloud container clusters describe CLUSTER --location LOCATION
Ersetzen Sie Folgendes:
- CLUSTER: der Name Ihrer
google_container_cluster
-Ressource. - LOCATION: Der Standort, an dem der Cluster erstellt wird.
Die Ausgabe sollte in etwa so aussehen:
resourceLabels:
fleet-clusterinventory-management-cluster: 'true'
Generierte Clusterprofilressourcen prüfen
Prüfen Sie mit dem folgenden Befehl, ob die Clusterprofilressourcen im Hub-Cluster generiert wurden:
gcloud container clusters get-credentials CLUSTER --location LOCATION
kubectl get clusterprofiles -n fleet-cluster-inventory
Ersetzen Sie Folgendes:
- CLUSTER: der Name Ihrer
google_container_cluster
-Ressource. - LOCATION: Der Standort, an dem der Cluster erstellt wird.
Die Ausgabe sollte in etwa so aussehen:
NAME AGE
cluster-1-us-west1 10s
cluster-2-us-west1 20s
Diese Ausgabe sollte ein Clusterprofil für jeden Cluster in der Flotte enthalten.
Der Name des Clusterprofils hat das Format MEMBERSHIP-
LOCATION.
Inhalte des Clusterprofils ansehen
Verwenden Sie den folgenden Befehl, um den Inhalt des Clusterprofils für einen bestimmten Cluster aufzurufen:
kubectl get clusterprofile CLUSTER-LOCATION -n fleet-cluster-inventory -o yaml
Ersetzen Sie Folgendes:
- CLUSTER: der Name Ihrer
google_container_cluster
-Ressource. - LOCATION: Der Standort, an dem der Cluster erstellt wird.
Die Ausgabe sollte in etwa so aussehen:
apiVersion: multicluster.x-k8s.io/v1alpha1
kind: ClusterProfile
metadata:
annotations:
fleet.gke.io/membershipName: projects/123456789/locations/us-west1/memberships/cluster-1
labels:
x-k8s.io/cluster-manager: gke-fleet
name: cluster-1-us-west1
namespace: fleet-cluster-inventory
ClusterProfile-Synchronisierung deaktivieren
Deaktivieren Sie die ClusterProfile-Synchronisierung im Hub-Cluster der Flotte, indem Sie das Label fleet-clusterinventory-management-cluster
entfernen:
gcloud container clusters update CLUSTER --location LOCATION \
--remove-labels=fleet-clusterinventory-management-cluster
Ersetzen Sie Folgendes:
- CLUSTER: der Name Ihrer
google_container_cluster
-Ressource. - LOCATION: Der Standort, an dem der Cluster erstellt wird.
Nächste Schritte
- Weitere Informationen zur Integration der ClusterProfile-Synchronisierung in Argo CD finden Sie unter Argo CD ClusterProfile Syncer.
- Der Multi-Cluster-Orchestrator verwendet Clusterprofile. Damit lassen sich Bereitstellungen mit mehreren Clustern und mehreren Regionen planen. Weitere Informationen finden Sie unter Übersicht über Multi-Cluster Orchestrator.