Générer un inventaire pour les intégrations tierces

Cette page explique comment générer un inventaire de clusters pour un parc existant. Un inventaire de clusters pour un parc vous permet de travailler avec des intégrations Open Source et tierces qui utilisent la spécification ClusterProfile.

Un inventaire de clusters est l'équivalent Open Source d'un parc : un regroupement logique de clusters Kubernetes et d'autres ressources qui peuvent être gérés ensemble. La spécification ClusterProfile contient un sous-ensemble des informations d'une flotte.

La fonctionnalité de synchronisation ClusterProfile est une synchronisation à sens unique entre une flotte et un inventaire de clusters. Lorsque la synchronisation ClusterProfile est activée, le parc est la source de vérité, et toute modification apportée au parc est automatiquement appliquée à l'inventaire des clusters par la synchronisation ClusterProfile. Les modifications apportées directement aux ressources du profil de cluster ne sont pas appliquées au parc.

Avant de commencer

  1. Assurez-vous de satisfaire les conditions préalables générales pour travailler avec des parcs.

  2. Créez un parc ou identifiez un parc existant avec lequel travailler.

Activer la synchronisation ClusterProfile

La synchronisation ClusterProfile s'exécute sur un cluster du parc. Ce cluster est appelé cluster hub et peut être utilisé pour exécuter des contrôleurs multiclusters qui ont besoin d'informations sur le reste des clusters du parc. Les contrôleurs Argo CD et l'orchestrateur multicluster sont des exemples de contrôleurs multiclusters. Nous vous recommandons de ne pas exécuter d'autres charges de travail dans le cluster hub.

Activez la synchronisation ClusterProfile sur un cluster en ajoutant le libellé fleet-clusterinventory-management-cluster=true. Vous pouvez procéder comme suit :

Après avoir activé la fonctionnalité de synchronisation ClusterProfile pour un parc, elle crée automatiquement un profil de cluster pour chaque cluster du parc à l'aide de l'API ClusterProfile. Ces profils de cluster sont automatiquement créés, mis à jour et supprimés lorsque des modifications sont apportées au parc.

Activer la synchronisation ClusterProfile sur un nouveau cluster

Pour créer un cluster pour le cluster hub et activer la synchronisation ClusterProfile, utilisez la commande suivante :

gcloud container clusters create CLUSTER --location LOCATION --enable-fleet
    --labels=fleet-clusterinventory-management-cluster=true

Remplacez les éléments suivants :

  • CLUSTER : nom de votre ressource google_container_cluster
  • LOCATION : emplacement où le cluster est créé.

Par défaut, les profils de cluster sont créés dans l'espace de noms fleet-cluster-inventory. Pour modifier l'espace de noms, spécifiez le libellé fleet-clusterinventory-namespace.

gcloud container clusters update CLUSTER --location LOCATION
    --update-labels=fleet-clusterinventory-namespace=NAMESPACE

Remplacez les éléments suivants :

  • CLUSTER : nom de votre ressource google_container_cluster
  • LOCATION : emplacement où le cluster est créé.
  • NAMESPACE : espace de noms dans lequel les profils de cluster sont générés. Si aucun espace de noms n'est spécifié, les profils de cluster sont générés dans l'espace de noms fleet-cluster-inventory.

Activer la synchronisation ClusterProfile sur un cluster existant

Pour activer la synchronisation ClusterProfile sur un cluster existant, utilisez la commande suivante :

gcloud container clusters update CLUSTER --location LOCATION
    --update-labels=fleet-clusterinventory-management-cluster=true

Remplacez les éléments suivants :

  • CLUSTER : nom de votre ressource google_container_cluster
  • LOCATION : emplacement où le cluster est créé.

Par défaut, les profils de cluster sont créés dans l'espace de noms fleet-cluster-inventory. Pour modifier l'espace de noms, spécifiez le libellé fleet-clusterinventory-namespace.

gcloud container clusters update CLUSTER --location LOCATION
    --update-labels=fleet-clusterinventory-namespace=NAMESPACE

Remplacez les éléments suivants :

  • CLUSTER : nom de votre ressource google_container_cluster
  • LOCATION : emplacement où le cluster est créé.
  • NAMESPACE : espace de noms dans lequel les profils de cluster sont générés. Si aucun espace de noms n'est spécifié, les profils de cluster sont générés dans l'espace de noms fleet-cluster-inventory.

Vérifier que la synchronisation ClusterProfile est activée

Vérifiez que la synchronisation ClusterProfile est activée en vérifiant que le cluster hub inclut le libellé fleet-clusterinventory-management-cluster = true. Pour ce faire, exécutez la commande suivante :

gcloud container clusters describe CLUSTER --location LOCATION

Remplacez les éléments suivants :

  • CLUSTER : nom de votre ressource google_container_cluster
  • LOCATION : emplacement où le cluster est créé.

La sortie devrait ressembler à ce qui suit :

resourceLabels:
  fleet-clusterinventory-management-cluster: 'true'

Vérifier les ressources de profil de cluster générées

Vérifiez que les ressources de profil de cluster sont générées dans le cluster hub à l'aide de la commande suivante :

gcloud container clusters get-credentials CLUSTER --location LOCATION

kubectl get clusterprofiles -n fleet-cluster-inventory

Remplacez les éléments suivants :

  • CLUSTER : nom de votre ressource google_container_cluster
  • LOCATION : emplacement où le cluster est créé.

Le résultat doit être semblable à ceci :

NAME                           AGE
cluster-1-us-west1             10s
cluster-2-us-west1             20s

Ce résultat doit inclure un profil de cluster pour chaque cluster du parc. Le nom du profil de cluster est au format MEMBERSHIP-LOCATION.

Afficher le contenu du profil du cluster

Pour afficher le contenu du profil de cluster pour un cluster spécifique, utilisez la commande suivante :

kubectl get clusterprofile CLUSTER-LOCATION -n fleet-cluster-inventory -o yaml

Remplacez les éléments suivants :

  • CLUSTER : nom de votre ressource google_container_cluster
  • LOCATION : emplacement où le cluster est créé.

Le résultat doit être semblable à ceci :

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

Désactiver la synchronisation ClusterProfile

Désactivez la synchronisation ClusterProfile sur le cluster hub du parc en supprimant le libellé fleet-clusterinventory-management-cluster :

gcloud container clusters update CLUSTER --location LOCATION \
    --remove-labels=fleet-clusterinventory-management-cluster

Remplacez les éléments suivants :

  • CLUSTER : nom de votre ressource google_container_cluster
  • LOCATION : emplacement où le cluster est créé.

Étapes suivantes