Rychlý start: Rozšíření prostředků z clusteru centra Fleet Manageru (Fleet) Azure Kubernetes na členské clustery

V tomto rychlém startu se dozvíte, jak rozšířit prostředky z clusteru Centra flotily Azure Kubernetes na členské clustery.

Požadavky

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

ClusterResourcePlacement Rozšíření prostředků do členských clusterů pomocí rozhraní API

Objekt ClusterResourcePlacement rozhraní API slouží k šíření prostředků z clusteru centra do členských clusterů. Objekt ClusterResourcePlacement rozhraní API určuje prostředky, které se mají rozšířit, a zásady umístění, které se mají použít při výběru členských clusterů. Objekt ClusterResourcePlacement rozhraní API se vytvoří v clusteru centra a slouží k šíření prostředků do členských clusterů. Tento příklad ukazuje, jak rozšířit obor názvů na členské clustery pomocí objektu ClusterResourcePlacement rozhraní API se PickAll zásadami umístění.

Další informace najdete v tématu Šíření prostředků Kubernetes z clusteru centra do členských clusterů (Preview) a upstreamové dokumentace k fleetu.

  1. Pomocí příkazu vytvořte obor názvů, který se umístí do členských clusterů kubectl create namespace . Následující příklad vytvoří obor názvů s názvem my-namespace:

    kubectl create namespace my-namespace
    
  2. Vytvořte ClusterResourcePlacement objekt rozhraní API v clusteru centra, který rozšíří obor názvů do členských clusterů a nasadí ho kubectl apply -f pomocí příkazu. Následující příklad ClusterResourcePlacement vytvoří objekt s názvem crp a použije my-namespace obor názvů se zásadou PickAll umístění k rozšíření oboru názvů do všech členských clusterů:

    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. Pomocí příkazu zkontrolujte průběh šíření kubectl get clusterresourceplacement prostředků. Následující příklad zkontroluje stav objektu ClusterResourcePlacement s názvem crp:

    kubectl get clusterresourceplacement crp
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

    NAME   GEN   SCHEDULED   SCHEDULEDGEN   APPLIED   APPLIEDGEN   AGE
    crp    2     True        2              True      2            10s
    
  4. Pomocí příkazu zobrazte podrobnosti crp objektu kubectl describe crp . Následující příklad popisuje ClusterResourcePlacement objekt s názvem crp:

    kubectl describe clusterresourceplacement crp
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

    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
    

Vyčištění prostředků

Pokud už objekt nechcete používat ClusterResourcePlacement , můžete ho kubectl delete pomocí příkazu odstranit. Následující příklad odstraní ClusterResourcePlacement objekt s názvem crp:

kubectl delete clusterresourceplacement crp

Další kroky

Další informace o šíření prostředků najdete v následujících zdrojích informací: