Partage via


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.

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.

  1. 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
    
  2. 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 commande kubectl apply -f. L'exemple suivant ClusterResourcePlacement crée un objet nommé crp et utilise l'espace de noms my-namespace avec une stratégie de placement PickAll 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
    
  3. 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'objet ClusterResourcePlacement 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
    
  4. Affichez les détails de l'objet crp à l'aide de la commande kubectl describe crp. L'exemple suivant décrit l'objet ClusterResourcePlacement 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 :