Schnellstart: Verteilen von Ressourcen aus einem Azure Kubernetes Fleet Manager (Fleet)-Hubcluster an Membercluster

In dieser Schnellstartanleitung erfahren Sie, wie Sie Ressourcen aus einem Azure Kubernetes Fleet Manager (Fleet)-Hubcluster an Membercluster verteilen.

Voraussetzungen

Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.

Verwenden der ClusterResourcePlacement-API zum Verteilen von Ressourcen an Membercluster

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

Weitere Informationen finden Sie unter Kubernetes-Ressourcenverteilung vom Hubcluster zu Memberclustern (Vorschau) und in der Upstream-Fleet-Dokumentation.

  1. Erstellen Sie einen Namespace, der mithilfe des kubectl create namespace-Befehls in den Memberclustern 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 Membercluster zu verteilen und mithilfe des kubectl apply -f-Befehls bereitzustellen. Das folgende Beispiel ClusterResourcePlacement erstellt ein Objekt namens crp und verwendet den my-namespace-Namespace mit einer PickAll-Platzierungsrichtlinie, um den Namespace an alle Membercluster zu verteilen:

    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. Ü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 in etwa dem 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 in etwa dem folgendem Beispiel entsprechen:

    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
    

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

Nächste Schritte

Weitere Informationen zur Ressourcenverteilung finden Sie in den folgenden Artikeln: