共用方式為


使用 Azure Kubernetes Fleet Manager 的叢集資源配置,跨多個叢集部署工作負載

本文說明如何使用 Azure Kubernetes Fleet Manager 叢集資源放置,在車隊中跨叢集部署工作負載。

先決條件

使用 ClusterResourcePlacement 將資源放在成員叢集上

物件 ClusterResourcePlacement 會在中樞叢集上建立,並用來將資源傳播至成員叢集。 它會指定要傳播的資源,以及當您選取成員叢集時要使用的放置原則。 此範例示範如何使用 ClusterResourcePlacement 物件搭配 PickAll 放置原則,將命名空間傳播至成員叢集。

如需詳細資訊,請參閱 使用 Azure Kubernetes Fleet Manager 叢集資源放置 和開放原始碼 KubeFleet 檔的資源放置。

  1. 建立命名空間以放在成員叢集上:
kubectl create namespace my-namespace
  1. 建立 ClusterResourcePlacement 物件並套用至 Fleet Manager 中樞叢集。 在下列範例中,ClusterResourcePlacement名為 distribute-my-namespace 是用來使用my-namespace放置原則將命名空間PickAll部署到所有成員叢集:
apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
  name: distribute-my-namespace
spec:
  resourceSelectors:
    - group: ""
      kind: Namespace
      version: v1          
      name: my-namespace
  policy:
    placementType: PickAll

發出kubectl apply -f distribute-my-namespace.yaml,將此命令套用至機群管理員中樞叢集,並使用您建立的檔案名稱替代 distribute-my-namespace.yaml

  1. 檢查資源傳播的進度:
kubectl get clusterresourceplacement distribute-my-namespace

輸出看起來應類似下列範例:

NAME                       GEN   SCHEDULED   SCHEDULEDGEN   APPLIED   APPLIEDGEN   AGE
distribute-my-namespace    2     True        2              True      2            10s
  1. 檢視放置物件的詳細資料:
kubectl describe clusterresourceplacement distribute-my-namespace

輸出看起來應類似下列範例:

Name:         distribute-my-namespace
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

清除資源

如果您不想再使用 ClusterResourcePlacement 物件,您可以使用 kubectl delete 命令加以刪除。 下列範例會刪除名為 distribute-my-namespaceClusterResourcePlacement 物件:

kubectl delete clusterresourceplacement distribute-my-namespace

若要深入了解資源傳播,請參閱下列資源: