クイックスタート: Azure Kubernetes Fleet Manager (フリート) ハブ クラスターからメンバー クラスターにリソースを伝達する
このクイックスタートでは、Azure Kubernetes Fleet Manager (フリート) ハブ クラスターからメンバー クラスターにリソースを伝達する方法を学習します。
前提条件
Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
- このクイックスタートで使用される概念と用語を把握するために、「リソース伝達の概念の概要」を参照してください。
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- 1 つのハブ クラスターと複数のメンバー クラスターを持つフリート リソースが必要です。 存在しない場合は、「Azure CLI を使用して Azure Kubernetes Fleet Manager リソースを作成し、メンバー クラスターを参加させる」を参照してください。
- メンバー クラスターは、必要な選択条件に一致するように、ハブ クラスターにおいて適切にラベル付けされている必要があります。 ラベルの例としては、リージョン、環境、チーム、可用性ゾーン、ノード可用性、その他必要なものが挙げられます。
- ハブ クラスターの Kubernetes API へのアクセス権が必要です。 アクセス権がない場合は、「Azure Kubernetes Fleet Manager を使用したフリート リソースの Kubernetes API へのアクセス」を参照してください。
ClusterResourcePlacement
API を使用してメンバー クラスターにリソースを伝達する
ClusterResourcePlacement
API オブジェクトは、ハブ クラスターからメンバー クラスターにリソースを伝達するために使用されます。 ClusterResourcePlacement
API オブジェクトは、伝達するリソースと、メンバー クラスターを選択するときに使用する配置ポリシーを指定します。 ClusterResourcePlacement
API オブジェクトはハブ クラスター内に作成され、リソースをメンバー クラスターに伝達するために使用されます。 この例では、ClusterResourcePlacement
API オブジェクトと PickAll
配置ポリシーを使用して、名前空間をメンバー クラスターに伝達する方法を示します。
詳細については、「ハブ クラスターからメンバー クラスターへの Kubernetes リソース伝達」とオープンソースの Fleet ドキュメントを参照してください。
kubectl create namespace
コマンドを使用して、メンバー クラスターに配置する名前空間を作成します。 次の例では、my-namespace
という名前空間を作成します。kubectl create namespace my-namespace
ハブ クラスターに
ClusterResourcePlacement
API オブジェクトを作成し、名前空間をメンバー クラスターに伝達し、kubectl apply -f
コマンドを使用してそれをデプロイします。 次の例のClusterResourcePlacement
はcrp
という名前のオブジェクトを作成し、my-namespace
名前空間とPickAll
配置ポリシーを使用して、名前空間をすべてのメンバー クラスターに伝達します。kubectl apply -f - <<EOF apiVersion: placement.kubernetes-fleet.io/v1 kind: ClusterResourcePlacement metadata: name: crp spec: resourceSelectors: - group: "" kind: Namespace version: v1 name: my-namespace policy: placementType: PickAll EOF
kubectl get clusterresourceplacement
コマンドを使用して、リソース伝達の進行状況を確認します。 次の例では、crp
という名前のClusterResourcePlacement
オブジェクトの状態を確認します。kubectl get clusterresourceplacement crp
出力は次の出力例のようになります。
NAME GEN SCHEDULED SCHEDULEDGEN APPLIED APPLIEDGEN AGE crp 2 True 2 True 2 10s
kubectl describe crp
コマンドを使用してcrp
オブジェクトの詳細を確認します。 次の例では、crp
という名前のClusterResourcePlacement
オブジェクトについて説明します。kubectl describe clusterresourceplacement crp
出力は次の出力例のようになります。
Name: crp 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
コマンドを使用して削除できます。 次の例では、crp
という名前の ClusterResourcePlacement
オブジェクトを削除します。
kubectl delete clusterresourceplacement crp
次のステップ
リソース伝達の詳細について確認するには、以下のリソースを参照してください。
Azure Kubernetes Service