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
Assurez-vous de satisfaire les conditions préalables générales pour travailler avec des parcs.
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 :
- Créez un cluster à utiliser comme cluster hub. Consultez la section suivante pour activer la synchronisation ClusterProfile sur un nouveau cluster.
- Identifiez un cluster du parc à utiliser comme cluster hub. Consultez la section suivante pour activer la synchronisation ClusterProfile sur un cluster existant.
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
- Pour en savoir plus sur l'intégration de la synchronisation ClusterProfile à ArgoCD, consultez ArgoCD ClusterProfile Syncer.
- Multi-Cluster Orchestrator utilise des profils de cluster. Il permet de planifier des déploiements multiclusters et multirégionaux. Pour en savoir plus, consultez la présentation de Multi-Cluster Orchestrator.