Condividi tramite


Propagare le risorse da un cluster hub di Azure Kubernetes Fleet Manager (Fleet) ai cluster membri

Questo articolo offre una panoramica su come propagare le risorse da un cluster hub di Azure Kubernetes Fleet Manager (Fleet) ai cluster membri.

Prerequisiti

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Usare l'API ClusterResourcePlacement per propagare le risorse ai cluster membri

L'oggetto API ClusterResourcePlacement viene usato per propagare le risorse da un cluster hub ai cluster membri. L'oggetto API ClusterResourcePlacement specifica le risorse da propagare e i criteri di posizionamento da usare quando si selezionano i cluster membri. L'oggetto API ClusterResourcePlacement viene creato nel cluster hub e usato per propagare le risorse ai cluster membri. Questo esempio illustra come propagare uno spazio dei nomi ai cluster membri usando l'oggetto API ClusterResourcePlacement con un criterio di posizionamento PickAll.

Per altre informazioni, vedere Propagazione delle risorse Kubernetes dal cluster hub ai cluster membri e la documentazione di Fleet open source.

  1. Creare uno spazio dei nomi da inserire nei cluster membri usando il comando kubectl create namespace. L'esempio seguente crea uno spazio dei nomi denominato my-namespace:

    kubectl create namespace my-namespace
    
  2. Creare un oggetto API ClusterResourcePlacement nel cluster hub per propagare lo spazio dei nomi ai cluster membri e distribuirlo usando il comando kubectl apply -f. L'esempio seguente ClusterResourcePlacement crea un oggetto denominato crp e usa lo spazio dei nomi my-namespace con un criterio di posizionamento PickAll per propagare lo spazio dei nomi a tutti i cluster membri:

    kubectl apply -f - <<EOF
    apiVersion: placement.kubernetes-fleet.io/v1
    kind: ClusterResourcePlacement
    metadata:
      name: crp
    spec:
      resourceSelectors:
        - group: ""
          kind: Namespace
          version: v1          
          name: my-namespace
      policy:
        placementType: PickAll
    EOF
    
  3. Controllare lo stato di avanzamento della propagazione delle risorse usando il comando kubectl get clusterresourceplacement. Nell'esempio seguente viene controllato lo stato dell'oggetto ClusterResourcePlacementdenominato crp:

    kubectl get clusterresourceplacement crp
    

    L'output dovrebbe essere simile all'esempio di output seguente:

    NAME   GEN   SCHEDULED   SCHEDULEDGEN   APPLIED   APPLIEDGEN   AGE
    crp    2     True        2              True      2            10s
    
  4. Visualizzare i dettagli dell'oggetto crp con il comando kubectl describe crp. Nell'esempio seguente viene descritto l'oggetto ClusterResourcePlacement denominato crp:

    kubectl describe clusterresourceplacement crp
    

    L'output dovrebbe essere simile all'esempio di output seguente:

    Name:         crp
    Namespace:    
    Labels:       <none>
    Annotations:  <none>
    API Version:  placement.kubernetes-fleet.io/v1
    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
    

Pulire le risorse

Se non si vuole più usare l'oggetto ClusterResourcePlacement, è possibile eliminarlo usando il comando kubectl delete. Nell'esempio seguente viene eliminato l'oggetto ClusterResourcePlacement denominato crp:

kubectl delete clusterresourceplacement crp

Passaggi successivi

Per altre informazioni sulla propagazione delle risorse, vedere le risorse seguenti: