다음을 통해 공유


Azure Arc 지원 Kubernetes 에이전트 개요

Azure Arc 지원 Kubernetes는 여러 다른 환경의 Kubernetes 클러스터에서 정책, 거버넌스 및 보안을 관리하는 중앙 집중식 일관된 컨트롤 플레인을 제공합니다.

Azure Arc 에이전트는 Azure Arc에 연결할 때 Kubernetes 클러스터에 배포됩니다. 이 문서에서는 이러한 에이전트에 대한 개요를 제공합니다.

클러스터에 에이전트 배포

대부분 온-프레미스 데이터 센터는 네트워크 경계 방화벽에서 인바운드 통신을 차단하는 엄격한 네트워크 규칙을 적용합니다. Azure Arc 지원 Kubernetes는 방화벽에서 인바운드 포트를 필요로 하지 않음으로써 이러한 제한 사항과 함께 작동합니다. Azure Arc 에이전트에는 네트워크 엔드포인트의 집합 목록에 대한 아웃바운드 통신이 필요합니다.

이 다이어그램은 Azure Arc 구성 요소의 개략적인 보기를 제공합니다. 온-프레미스 데이터 센터 또는 다른 클라우드의 Kubernetes 클러스터는 Azure Arc 에이전트를 통해 Azure에 연결됩니다. 이 연결을 사용하면 관리 도구 및 Azure 서비스를 사용하여 Azure에서 클러스터를 관리할 수 있습니다. 또한 오프라인 관리 도구를 통해 클러스터에 액세스할 수 있습니다.

Azure Arc 지원 Kubernetes 에이전트의 아키텍처 개요를 보여 주는 다이어그램

Kubernetes 클러스터를 Azure Arc에 연결하는 데는 다음과 같은 개략적인 단계가 포함됩니다.

  1. 선택한 인프라(VMware vSphere, Amazon Web Services, Google Cloud Platform 또는 CNCF(Cloud Native Computing Foundation) 인증 Kubernetes 배포판)에 Kubernetes 클러스터를 만듭니다. 이 클러스터는 Azure Arc에 연결하기 전에 이미 있어야 합니다.

  2. 클러스터에 대한 Azure Arc 등록을 시작합니다. 이 프로세스는 클러스터에 에이전트 Helm 차트를 배포합니다. 그런 다음 클러스터 노드는 Microsoft Container Registry에 대한 아웃바운드 통신을 시작하고 azure-arc 네임스페이스에 다음 에이전트를 만드는 데 필요한 이미지를 끌어옵니다.

    에이전트 설명
    deployment.apps/clusteridentityoperator Azure Arc 지원 Kubernetes는 현재 시스템 할당 ID만 지원합니다. clusteridentityoperator는 첫 번째 아웃바운드 통신을 시작합니다. 첫 번째 통신은 다른 에이전트가 Azure와 통신하기 위해 사용하는 MSI(관리되는 서비스 ID) 인증서를 가져옵니다.
    deployment.apps/config-agent 클러스터에 적용된 원본 제어 구성 리소스의 연결된 클러스터를 감시합니다. 준수 상태를 업데이트합니다.
    deployment.apps/controller-manager Azure Arc 구성 요소 간에 상호 작용을 오케스트레이션하는 연산자의 연산자입니다.
    deployment.apps/metrics-agent 다른 Arc 에이전트의 메트릭을 수집하여 최적 성능을 확인합니다.
    deployment.apps/cluster-metadata-operator 클러스터 버전, 노드 수 및 Azure Arc 에이전트 버전을 포함한 클러스터 메타데이터를 수집합니다.
    deployment.apps/resource-sync-agent 위에서 언급한 클러스터 메타데이터를 Azure에 동기화합니다.
    deployment.apps/flux-logs-agent 원본 제어 구성의 일부로 배포된 flux 연산자에서 로그를 수집합니다.
    deployment.apps/extension-manager 확장 Helm 차트의 수명 주기를 설치 및 관리합니다.
    deployment.apps/kube-aad-proxy 클러스터 연결을 사용하여 클러스터로 전송된 요청의 인증에 사용됩니다.
    deployment.apps/clusterconnect-agent 클러스터 연결 기능을 사용하여 클러스터의 apiserver에 대한 액세스를 제공하는 역방향 프록시 에이전트입니다. 클러스터 연결 기능이 사용되는 경우에만 배포되는 선택적 구성 요소입니다.
    deployment.apps/guard Microsoft Entra RBAC에 사용되는 인증 및 권한 부여 웹후크 서버입니다. 클러스터에서 Azure RBAC가 사용하도록 설정된 경우에만 배포되는 선택적 구성 요소입니다.
  3. Azure Arc 지원 Kubernetes 에이전트 Pod가 모두 Running 상태가 된 후 클러스터가 Azure Arc에 연결되었는지 확인합니다. 다음이 표시됩니다.

    • Azure Resource Manager의 Azure Arc 지원 Kubernetes connectedClusters 리소스입니다. Azure는 실제 Kubernetes 클러스터 자체를 추적하는 대신 고객 관리되는 Kubernetes 클러스터의 프로젝션으로 이 리소스를 추적합니다.
    • 클러스터 메타데이터(예: Kubernetes 버전, 에이전트 버전 및 노드 수)는 Azure Arc 지원 Kubernetes 리소스에 메타데이터로 표시됩니다.

클러스터에 에이전트를 배포하는 방법에 대한 자세한 내용은 빠른 시작: Azure Arc에 기존 Kubernetes 클러스터 연결을 참조하세요.

Azure 지역 간에 Arc 지원 Kubernetes 클러스터 이동

경우에 따라 Arc 지원 Kubernetes 클러스터를 다른 지역으로 이동해야 할 수 있습니다. 예를 들어, 특정 지역에서만 사용할 수 있는 기능이나 서비스를 배포하거나 내부 거버넌스 요구 사항 또는 용량 계획 고려 사항으로 인해 지역을 변경해야 할 수 있습니다.

연결된 클러스터를 새 지역으로 이동하면 원본 지역에서 connectedClusters Azure Resource Manager 리소스를 삭제한 다음 에이전트를 배포하여 대상 지역에서 connectedClusters 리소스를 다시 만듭니다. 클러스터 내의 소스 제어 구성, Flux 구성확장 기능의 경우 리소스에 대한 세부 정보를 저장한 다음 새 클러스터 리소스에서 하위 리소스를 다시 만들어야 합니다.

시작하기 전에 Azure Arc 지원 Kubernetes 리소스(Microsoft.Kubernetes/connectedClusters) 및 필요한 Azure Arc 지원 Kubernetes 구성 리소스(Microsoft.KubernetesConfiguration/SourceControlConfigurations, Microsoft.KubernetesConfiguration/Extensions, Microsoft.KubernetesConfiguration/FluxConfigurations)가 대상 지역에서 지원되는지 확인합니다.

  1. LIST를 수행하여 원본 클러스터(이동할 클러스터)의 모든 구성 리소스를 가져오고 응답 본문을 저장합니다.

    참고 항목

    구성 리소스의 LIST/GET이 ConfigurationProtectedSettings을(를) 반환하지 않습니다. 이러한 경우 유일한 옵션은 원래 요청 본문을 저장하고 새 지역에서 리소스를 만드는 동안 다시 사용하는 것입니다.

  2. 기본 Kubernetes 클러스터에서 이전 Arc 배포를 삭제합니다.

  3. 기본 Kubernetes 클러스터에 대한 네트워크 액세스 권한이 있으면 새 지역에서 클러스터를 연결합니다.

  4. Arc 연결 클러스터가 새 지역에서 성공적으로 실행되고 있는지 확인합니다.

    1. az connectedk8s show -n <connected-cluster-name> -g <resource-group>를 실행하고 connectivityStatus 값이 Connected인지 확인합니다.
    2. kubectl get deployments,pods -n azure-arc을(를) 실행하여 모든 에이전트가 성공적으로 배포되었는지 확인합니다.
  5. 저장한 응답 본문을 사용하여 대상 클러스터의 원본 클러스터에서 LIST 명령으로 얻은 각 구성 리소스를 다시 만듭니다. 확인하려면 대상 클러스터의 모든 구성 리소스 LIST의 결과를 원본 클러스터의 원래 LIST 응답과 비교하세요.

다음 단계