Dela via


Snabbstart: Sprida resurser från ett Azure Kubernetes Fleet Manager-hubbkluster (Fleet) till medlemskluster

I den här snabbstarten lär du dig att sprida resurser från ett Azure Kubernetes Fleet Manager-hubbkluster (Fleet) till medlemskluster.

Förutsättningar

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

Använda API:et ClusterResourcePlacement för att sprida resurser till medlemskluster

ClusterResourcePlacement API-objektet används för att sprida resurser från ett hubbkluster till medlemskluster. ClusterResourcePlacement API-objektet anger de resurser som ska spridas och den placeringsprincip som ska användas när medlemskluster väljs. ClusterResourcePlacement API-objektet skapas i hubbklustret och används för att sprida resurser till medlemskluster. Det här exemplet visar hur du sprider ett namnområde till medlemskluster med hjälp av ClusterResourcePlacement API-objektet med en PickAll placeringsprincip.

Mer information finns i Kubernetes-resursspridning från hubbkluster till medlemskluster (förhandsversion) och den överordnade fleetdokumentationen.

  1. Skapa ett namnområde som ska placeras i medlemskluster med hjälp av kubectl create namespace kommandot . I följande exempel skapas ett namnområde med namnet my-namespace:

    kubectl create namespace my-namespace
    
  2. Skapa ett ClusterResourcePlacement API-objekt i hubbklustret för att sprida namnområdet till medlemskluster och distribuera det med hjälp av kubectl apply -f kommandot . I följande exempel ClusterResourcePlacement skapas ett objekt med namnet crp och namnområdet med my-namespace en PickAll placeringsprincip används för att sprida namnområdet till alla medlemskluster:

    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. Kontrollera förloppet för resursspridningen kubectl get clusterresourceplacement med hjälp av kommandot . I följande exempel kontrolleras statusen för ClusterResourcePlacement objektet med namnet crp:

    kubectl get clusterresourceplacement crp
    

    Dina utdata bör se ut ungefär som följande exempelutdata:

    NAME   GEN   SCHEDULED   SCHEDULEDGEN   APPLIED   APPLIEDGEN   AGE
    crp    2     True        2              True      2            10s
    
  4. Visa information om objektet crp med kommandot kubectl describe crp . I följande exempel beskrivs objektet ClusterResourcePlacement med namnet crp:

    kubectl describe clusterresourceplacement crp
    

    Dina utdata bör se ut ungefär som följande exempelutdata:

    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
    

Rensa resurser

Om du inte längre vill använda ClusterResourcePlacement objektet kan du ta bort det med kommandot kubectl delete . I följande exempel tas ClusterResourcePlacement objektet med namnet crp:

kubectl delete clusterresourceplacement crp

Nästa steg

Mer information om resursspridning finns i följande resurser: