다음을 통해 공유


빠른 시작: Azure Kubernetes Fleet Manager(Fleet) 허브 클러스터에서 멤버 클러스터로 리소스 전파

이 빠른 시작에서는 Azure Kubernetes Fleet Manager(Fleet) 허브 클러스터에서 멤버 클러스터로 리소스를 전파하는 방법을 알아봅니다.

필수 조건

Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.

ClusterResourcePlacement API를 사용하여 멤버 클러스터에 리소스 전파

ClusterResourcePlacement API 개체는 허브 클러스터에서 멤버 클러스터로 리소스를 전파하는 데 사용됩니다. ClusterResourcePlacement API 개체는 전파할 리소스와 멤버 클러스터를 선택할 때 사용할 배치 정책을 지정합니다. ClusterResourcePlacement API 개체는 허브 클러스터에 만들어지며 리소스를 멤버 클러스터에 전파하는 데 사용됩니다. 이 예에서는 PickAll 배치 정책과 함께 ClusterResourcePlacement API 개체를 사용하여 멤버 클러스터에 네임스페이스를 전파하는 방법을 보여 줍니다.

자세한 내용은 허브 클러스터에서 멤버 클러스터로 Kubernetes 리소스 전파(미리 보기)업스트림 Fleet 설명서를 참조하세요.

  1. kubectl create namespace 명령을 사용하여 멤버 클러스터에 배치할 네임스페이스를 만듭니다. 다음 예에서는 my-namespace라는 네임스페이스를 만듭니다.

    kubectl create namespace my-namespace
    
  2. 허브 클러스터에 ClusterResourcePlacement API 개체를 만들어 멤버 클러스터에 네임스페이스를 전파하고 kubectl apply -f 명령을 사용하여 배포합니다. 다음 예 ClusterResourcePlacementcrp라는 개체를 만들고 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
    
  3. kubectl get clusterresourceplacement 명령을 사용하여 리소스 전파 진행률을 확인합니다. 다음 예에서는 crp라는 ClusterResourcePlacement 개체의 상태를 확인합니다.

    kubectl get clusterresourceplacement crp
    

    출력은 다음 예제 출력과 비슷하게 됩니다.

    NAME   GEN   SCHEDULED   SCHEDULEDGEN   APPLIED   APPLIEDGEN   AGE
    crp    2     True        2              True      2            10s
    
  4. 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

다음 단계

리소스 전파에 대해 자세히 알아보려면 다음 리소스를 참조하세요.