Inventar für Integrationen von Drittanbietern generieren

Auf dieser Seite wird beschrieben, wie Sie ein Clusterinventar für eine vorhandene Flotte generieren. 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 ClusterProfile-Spezifikation enthält Informationen, die eine Teilmenge der Informationen in einer Flotte sind.

Die ClusterProfile-Synchronisierung ist eine Einwegsynchronisierung zwischen einer Flotte und einem Clusterinventar. Wenn die ClusterProfile-Synchronisierung aktiviert ist, ist die Flotte die „Source of Truth“ und alle Änderungen an der Flotte werden automatisch durch die ClusterProfile-Synchronisierung auf das Clusterinventar angewendet. Änderungen, die direkt an den Ressourcen des Clusterprofils vorgenommen werden, werden nicht auf die Flotte angewendet.

Hinweise

  1. Prüfen Sie, ob Sie die allgemeinen Voraussetzungen für die Arbeit mit Flotten erfüllt haben.

  2. Erstellen Sie eine Flotte oder wählen Sie eine vorhandene Flotte aus.

ClusterProfile-Synchronisierung aktivieren

Die ClusterProfile-Synchronisierung wird für einen Cluster innerhalb 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 übrigen Clustern in der Flotte benötigen. Beispiele für Multi-Cluster-Controller sind Argo CD-Controller und 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:

Nachdem Sie die ClusterProfile-Synchronisierungsfunktion für eine Flotte aktiviert haben, wird automatisch ein Clusterprofil für jeden Cluster in der Flotte mithilfe 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 Clusterprofilsynchronisierung 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.

Standardmäßig werden Clusterprofile im Namespace fleet-cluster-inventory erstellt. Wenn Sie den Namespace ändern möchten, geben Sie das Label fleet-clusterinventory-namespace an.

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 Sie keinen angeben, werden die Clusterprofile im Namespace fleet-cluster-inventory generiert.

ClusterProfile-Synchronisierung für einen vorhandenen Cluster aktivieren

Führen Sie den folgenden Befehl aus, 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.

Standardmäßig werden Clusterprofile im Namespace fleet-cluster-inventory erstellt. Wenn Sie den Namespace ändern möchten, geben Sie das Label fleet-clusterinventory-namespace an.

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 Sie keinen angeben, werden die Clusterprofile im Namespace fleet-cluster-inventory generiert.

Prüfen, ob die Clusterprofilsynchronisierung aktiviert ist

Prüfen Sie, ob die Clusterprofilsynchronisierung aktiviert ist. Dazu muss das Hub-Cluster das Label fleet-clusterinventory-management-cluster = true enthalten. Führen Sie dazu den folgenden Befehl aus:

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 Hubcluster generiert werden:

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.

Inhalt des Clusterprofils ansehen

Um den Inhalt des Clusterprofils für einen bestimmten Cluster aufzurufen, verwenden Sie den folgenden Befehl:

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 Hubcluster 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 mit Argo CD finden Sie unter Argo CD ClusterProfile Syncer.
  • Der Multi-Cluster Orchestrator verwendet Clusterprofile. Er hilft bei der Planung von Bereitstellungen mit mehreren Clustern und Regionen. Weitere Informationen finden Sie unter Multi-Cluster Orchestrator.