Démarrage rapide : Propager les ressources d'un cluster hub Azure Kubernetes Fleet Manager (Fleet) vers les clusters membres
Dans ce démarrage rapide, vous allez apprendre à propager des ressources d’un cluster hub Azure Kubernetes Fleet Manager (Fleet) vers les clusters membres.
Prérequis
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
- Lisez la présentation conceptuelle de la propagation des ressources pour comprendre les concepts et la terminologie utilisés dans ce démarrage rapide.
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Vous avez besoin d'une ressource Fleet avec un cluster hub et des clusters membres. Si vous n’en avez pas, consultez Créer une ressource Azure Kubernetes Fleet Manager et rejoindre des clusters membres à l’aide d’Azure CLI.
- Les clusters membres doivent être étiquetés de manière appropriée dans le cluster hub pour correspondre aux critères de sélection souhaités. Des exemples d'étiquettes incluent la région, l'environnement, l'équipe, les zones de disponibilité, la disponibilité des nœuds ou tout autre élément souhaité.
- Vous devez accéder à l'API Kubernetes du cluster hub. Si vous n’y avez pas accès, consultez Accéder à l’API Kubernetes de la ressource Fleet avec Azure Kubernetes Fleet Manager.
Utiliser l'API ClusterResourcePlacement
pour propager les ressources aux clusters membres
L'objet API ClusterResourcePlacement
est utilisé pour propager les ressources d'un cluster hub vers les clusters membres. L'objet API ClusterResourcePlacement
spécifie les ressources à propager et la stratégie de placement à utiliser lors de la sélection des clusters membres. L'objet API ClusterResourcePlacement
est créé dans le cluster hub et est utilisé pour propager les ressources aux clusters membres. Cet exemple montre comment propager un espace de noms aux clusters membres à l'aide de l'objet API ClusterResourcePlacement
avec une stratégie de placement PickAll
.
Pour plus d'informations, consultez Propagation des ressources Kubernetes du cluster hub vers les clusters membres (préversion) et la documentation de la flotte en amont.
Créez un espace de noms à placer sur les clusters membres à l'aide de la commande
kubectl create namespace
. L'exemple suivant crée un espace de noms nommémy-namespace
:kubectl create namespace my-namespace
Créez un objet API
ClusterResourcePlacement
dans le cluster hub pour propager l'espace de noms aux clusters membres et déployez-le à l'aide de la commandekubectl apply -f
. L'exemple suivantClusterResourcePlacement
crée un objet nommécrp
et utilise l'espace de nomsmy-namespace
avec une stratégie de placementPickAll
pour propager l'espace de noms à tous les clusters membres :kubectl apply -f - <<EOF apiVersion: placement.kubernetes-fleet.io/v1beta1 kind: ClusterResourcePlacement metadata: name: crp spec: resourceSelectors: - group: "" kind: Namespace version: v1 name: my-namespace policy: placementType: PickAll EOF
Vérifiez la progression de la propagation des ressources à l'aide de la commande
kubectl get clusterresourceplacement
. L'exemple suivant vérifie l'état de l'objetClusterResourcePlacement
nommécrp
:kubectl get clusterresourceplacement crp
Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :
NAME GEN SCHEDULED SCHEDULEDGEN APPLIED APPLIEDGEN AGE crp 2 True 2 True 2 10s
Affichez les détails de l'objet
crp
à l'aide de la commandekubectl describe crp
. L'exemple suivant décrit l'objetClusterResourcePlacement
nommécrp
:kubectl describe clusterresourceplacement crp
Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :
Name: crp Namespace: Labels: <none> Annotations: <none> API Version: placement.kubernetes-fleet.io/v1beta1 Kind: ClusterResourcePlacement Metadata: Creation Timestamp: 2024-04-01T18:55:31Z Finalizers: kubernetes-fleet.io/crp-cleanup kubernetes-fleet.io/scheduler-cleanup Generation: 2 Resource Version: 6949 UID: 815b1d81-61ae-4fb1-a2b1-06794be3f986 Spec: Policy: Placement Type: PickAll Resource Selectors: Group: Kind: Namespace Name: my-namespace Version: v1 Revision History Limit: 10 Strategy: Type: RollingUpdate Status: Conditions: Last Transition Time: 2024-04-01T18:55:31Z Message: found all the clusters needed as specified by the scheduling policy Observed Generation: 2 Reason: SchedulingPolicyFulfilled Status: True Type: ClusterResourcePlacementScheduled Last Transition Time: 2024-04-01T18:55:36Z Message: All 3 cluster(s) are synchronized to the latest resources on the hub cluster Observed Generation: 2 Reason: SynchronizeSucceeded Status: True Type: ClusterResourcePlacementSynchronized Last Transition Time: 2024-04-01T18:55:36Z Message: Successfully applied resources to 3 member clusters Observed Generation: 2 Reason: ApplySucceeded Status: True Type: ClusterResourcePlacementApplied Observed Resource Index: 0 Placement Statuses: Cluster Name: membercluster1 Conditions: Last Transition Time: 2024-04-01T18:55:31Z Message: Successfully scheduled resources for placement in membercluster1 (affinity score: 0, topology spread score: 0): picked by scheduling policy Observed Generation: 2 Reason: ScheduleSucceeded Status: True Type: ResourceScheduled Last Transition Time: 2024-04-01T18:55:36Z Message: Successfully Synchronized work(s) for placement Observed Generation: 2 Reason: WorkSynchronizeSucceeded Status: True Type: WorkSynchronized Last Transition Time: 2024-04-01T18:55:36Z Message: Successfully applied resources Observed Generation: 2 Reason: ApplySucceeded Status: True Type: ResourceApplied Cluster Name: membercluster2 Conditions: Last Transition Time: 2024-04-01T18:55:31Z Message: Successfully scheduled resources for placement in membercluster2 (affinity score: 0, topology spread score: 0): picked by scheduling policy Observed Generation: 2 Reason: ScheduleSucceeded Status: True Type: ResourceScheduled Last Transition Time: 2024-04-01T18:55:36Z Message: Successfully Synchronized work(s) for placement Observed Generation: 2 Reason: WorkSynchronizeSucceeded Status: True Type: WorkSynchronized Last Transition Time: 2024-04-01T18:55:36Z Message: Successfully applied resources Observed Generation: 2 Reason: ApplySucceeded Status: True Type: ResourceApplied Cluster Name: membercluster3 Conditions: Last Transition Time: 2024-04-01T18:55:31Z Message: Successfully scheduled resources for placement in membercluster3 (affinity score: 0, topology spread score: 0): picked by scheduling policy Observed Generation: 2 Reason: ScheduleSucceeded Status: True Type: ResourceScheduled Last Transition Time: 2024-04-01T18:55:36Z Message: Successfully Synchronized work(s) for placement Observed Generation: 2 Reason: WorkSynchronizeSucceeded Status: True Type: WorkSynchronized Last Transition Time: 2024-04-01T18:55:36Z Message: Successfully applied resources Observed Generation: 2 Reason: ApplySucceeded Status: True Type: ResourceApplied Selected Resources: Kind: Namespace Name: my-namespace Version: v1 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal PlacementScheduleSuccess 108s cluster-resource-placement-controller Successfully scheduled the placement Normal PlacementSyncSuccess 103s cluster-resource-placement-controller Successfully synchronized the placement Normal PlacementRolloutCompleted 103s cluster-resource-placement-controller Resources have been applied to the selected clusters
Nettoyer les ressources
Si vous ne souhaitez plus utiliser l'objet ClusterResourcePlacement
, vous pouvez le supprimer à l'aide de la commande kubectl delete
. L'exemple suivant supprime l'objet ClusterResourcePlacement
nommé crp
:
kubectl delete clusterresourceplacement crp
Étapes suivantes
Pour en savoir plus sur la propagation des ressources, consultez les ressources suivantes :
Azure Kubernetes Service