次の方法で共有


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

これを Fleet Manager ハブ クラスターに適用するには、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 コマンドを使用して削除できます。 次の例では、ClusterResourcePlacement という名前の distribute-my-namespace オブジェクトを削除します。

kubectl delete clusterresourceplacement distribute-my-namespace

リソース伝達の詳細について確認するには、以下のリソースを参照してください。