빠른 시작: Azure Kubernetes Fleet Manager(Fleet) 허브 클러스터에서 멤버 클러스터로 리소스 전파
이 빠른 시작에서는 Azure Kubernetes Fleet Manager(Fleet) 허브 클러스터에서 멤버 클러스터로 리소스를 전파하는 방법을 알아봅니다.
필수 조건
Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.
- 이 빠른 시작에 사용된 개념과 용어를 이해하려면 리소스 전파 개념 개요를 참조하세요.
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- 허브 클러스터와 멤버 클러스터가 있는 Fleet 리소스가 필요합니다. 없는 경우 Azure Kubernetes Fleet Manager 리소스 만들기 및 Azure CLI를 사용하여 멤버 클러스터 조인을 참조하세요.
- 멤버 클러스터는 원하는 선택 조건에 맞게 허브 클러스터에 적절하게 레이블이 지정되어야 합니다. 예 레이블에는 지역, 환경, 팀, 가용성 영역, 노드 가용성 또는 기타 원하는 항목이 포함됩니다.
- 허브 클러스터의 Kubernetes API에 액세스해야 합니다. 액세스 권한이 없으면 Azure Kubernetes Fleet Manager를 사용하여 Fleet 리소스의 Kubernetes API에 액세스를 참조하세요.
ClusterResourcePlacement
API를 사용하여 멤버 클러스터에 리소스 전파
ClusterResourcePlacement
API 개체는 허브 클러스터에서 멤버 클러스터로 리소스를 전파하는 데 사용됩니다. ClusterResourcePlacement
API 개체는 전파할 리소스와 멤버 클러스터를 선택할 때 사용할 배치 정책을 지정합니다. ClusterResourcePlacement
API 개체는 허브 클러스터에 만들어지며 리소스를 멤버 클러스터에 전파하는 데 사용됩니다. 이 예에서는 PickAll
배치 정책과 함께 ClusterResourcePlacement
API 개체를 사용하여 멤버 클러스터에 네임스페이스를 전파하는 방법을 보여 줍니다.
자세한 내용은 허브 클러스터에서 멤버 클러스터로 Kubernetes 리소스 전파(미리 보기) 및 업스트림 Fleet 설명서를 참조하세요.
kubectl create namespace
명령을 사용하여 멤버 클러스터에 배치할 네임스페이스를 만듭니다. 다음 예에서는my-namespace
라는 네임스페이스를 만듭니다.kubectl create namespace my-namespace
허브 클러스터에
ClusterResourcePlacement
API 개체를 만들어 멤버 클러스터에 네임스페이스를 전파하고kubectl apply -f
명령을 사용하여 배포합니다. 다음 예ClusterResourcePlacement
는crp
라는 개체를 만들고PickAll
배치 정책과 함께my-namespace
네임스페이스를 사용하여 네임스페이스를 모든 멤버 클러스터에 전파합니다.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
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/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
리소스 정리
ClusterResourcePlacement
개체를 더 이상 사용하지 않으려면 kubectl delete
명령을 사용하여 삭제할 수 있습니다. 다음 예에서는 crp
라는 ClusterResourcePlacement
개체를 삭제합니다.
kubectl delete clusterresourceplacement crp
다음 단계
리소스 전파에 대해 자세히 알아보려면 다음 리소스를 참조하세요.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기