Freigeben über


Verteilen von Ressourcen aus einem Azure Kubernetes Fleet Manager-Hubcluster an Mitgliedscluster

Dieser Artikel beschreibt, wie Sie Ressourcen aus einem Azure Kubernetes Fleet Manager-Hubcluster (Kubernetes Fleet) an Mitgliedscluster verteilen.

Voraussetzungen

Verwenden der ClusterResourcePlacement-API zum Verteilen von Ressourcen an Mitgliedscluster

Das ClusterResourcePlacement-API-Objekt wird im Hubcluster erstellt und wird verwendet, um Ressourcen an Membercluster zu verteilen. Es gibt die Ressourcen an, die verteilt werden sollen, und die Platzierungsrichtlinie, die beim Auswählen von Mitgliedsclustern verwendet werden soll. In diesem Beispiel wird veranschaulicht, wie ein Namespace mithilfe des ClusterResourcePlacement-API-Objekts mit einer PickAll-Platzierungsrichtlinie an Mitgliedscluster verteilt wird.

Weitere Informationen finden Sie unter Kubernetes-Ressourcenplatzierung von Hubclustern zu Mitgliedsclustern und der Open-Source-Kubernetes-Fleet-Dokumentation.

  1. Erstellen Sie einen Namespace, der mithilfe des kubectl create namespace-Befehls in den Mitgliedsclustern platziert werden soll. Im folgenden Beispiel wird ein Namespace mit dem Namen my-namespace erstellt:

    kubectl create namespace my-namespace
    
  2. Erstellen Sie ein ClusterResourcePlacement-API-Objekt im Hubcluster, um den Namespace an die Mitgliedscluster zu verteilen und mithilfe des kubectl apply -f-Befehls bereitzustellen. Das folgende Beispiel erstellt ClusterResourcePlacement ein Objekt namens crp und verwendet den my-namespace-Namespace mit einer PickAll-Platzierungsrichtlinie, um den Namespace an alle Mitgliedscluster zu verteilen:

    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. Überprüfen Sie den Fortschritt der Ressourcenverteilung mithilfe des kubectl get clusterresourceplacement-Befehls. Im folgenden Beispiel wird der Status des ClusterResourcePlacement-Objekts namens crp überprüft:

    kubectl get clusterresourceplacement crp
    

    Ihre Ausgabe sollte etwa folgendem Beispiel entsprechen:

    NAME   GEN   SCHEDULED   SCHEDULEDGEN   APPLIED   APPLIEDGEN   AGE
    crp    2     True        2              True      2            10s
    
  4. Zeigen Sie die Details des crp-Objekts mithilfe des kubectl describe crp-Befehls an. Im folgenden Beispiel wird das ClusterResourcePlacement-Objekt namens crpbeschrieben:

    kubectl describe clusterresourceplacement crp
    

    Ihre Ausgabe sollte etwa folgendem Beispiel entsprechen:

    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
    

Bereinigen von Ressourcen

Wenn Sie das ClusterResourcePlacement-Objekt nicht mehr verwenden möchten, können Sie es mit dem kubectl delete-Befehl löschen. Im folgenden Beispiel wird das ClusterResourcePlacement-Objekt namens crp gelöscht:

kubectl delete clusterresourceplacement crp

Weitere Informationen zur Ressourcenverteilung finden Sie in den folgenden Artikeln: