Azure Arc에 Azure Kubernetes Service 클러스터 연결

적용 대상: Azure Stack HCI 22H2의 AKS, Windows Server의 AKS

AKS(Azure Kubernetes Service) 클러스터가 Azure Arc에 연결되면 Azure Resource Manager 표현을 가져옵니다. 클러스터는 표준 Azure 구독에 연결되고, 리소스 그룹에 위치하며, 다른 Azure 리소스와 마찬가지로 태그를 받을 수 있습니다. 또한 Kubernetes 표현을 사용하면 다음 기능을 Kubernetes 클러스터로 확장할 수 있습니다.

  • 관리 서비스: 구성(GitOps), 컨테이너용 Azure Monitor, Azure Policy(Gatekeeper).
  • 데이터 서비스: SQL Managed Instance, PostgreSQL 하이퍼스케일.
  • 애플리케이션 서비스: App Service, Functions, Event Grid, Logic Apps, API Management.

Kubernetes 클러스터를 Azure에 연결하려면 클러스터 관리자가 에이전트를 배포해야 합니다. 이러한 에이전트는 azure-arc 라는 Kubernetes 네임스페이스에서 실행되며 표준 Kubernetes 배포입니다. 에이전트는 Azure에 연결하고, Azure Arc 로그 및 메트릭을 수집하고, 클러스터에서 이전에 언급한 시나리오를 사용하도록 설정할 책임이 있습니다.

AKS는 전송 중인 데이터를 보호하기 위해 업계 표준 SSL을 지원합니다. 또한, 데이터는 기밀 유지를 위해 Azure Cosmos DB 데이터베이스에 암호화된 상태로 유지됩니다.

다음 단계에서는 Arc에서 사용하도록 설정된 AKS의 Azure Arc에 AKS 클러스터를 연결하는 방법을 설명합니다. Windows Admin Center 사용하여 Kubernetes 클러스터를 Azure Arc에 이미 연결한 경우 이러한 단계를 건너뛸 수 있습니다.

시작하기 전에

다음 요구 사항이 있는지 확인합니다.

  • 실행 중인 Linux 작업자 노드가 하나 이상 있는 AKS 클러스터 입니다.
  • AksHci PowerShell 모듈을 설치합니다.
  • Azure 구독의 다음 액세스 수준:
    • 기본 제공 소유자 역할이 있는 사용자 계정입니다. 구독으로 이동하고 Azure Portal 왼쪽에서 "액세스 제어(IAM)"를 선택한 다음 내 액세스 보기 를 클릭하여 액세스 수준을 검사 수 있습니다.
    • 기본 제공 소유자 역할이 있는 서비스 주체입니다.
  • PowerShell 관리 창에서 이 문서의 명령을 실행합니다.
  • AKS의 네트워크 요구 사항을 충족하는지 확인합니다.

1단계: Azure에 로그인

Azure에 로그인하려면 Connect-AzAccount PowerShell 명령을 실행합니다.

Connect-AzAccount $tenantId

다른 구독으로 전환하려면 Set-AzContext PowerShell 명령을 실행합니다.

Set-AzContext -Subscription $subscriptionId

2단계: AKS에 대한 두 공급자 등록

구독에 AKS용 두 공급자를 이미 등록한 경우 이 단계를 건너뛸 수 있습니다. 등록은 비동기 프로세스이며 구독당 한 번 수행해야 합니다. 등록에는 약 10분이 걸릴 수 있습니다.

Register-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Register-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Register-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

다음 명령을 사용하여 등록한 경우 검사 수 있습니다.

Get-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Get-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

3단계: Aks-Hci PowerShell 모듈을 사용하여 Azure Arc에 연결

Enable-AksHciArcConnection PowerShell 명령을 사용하여 AKS 클러스터를 Kubernetes에 연결합니다. 이 단계에서는 Kubernetes용 Azure Arc 에이전트를 네임스페이 azure-arc 스에 배포합니다.

Enable-AksHciArcConnection -name $clusterName 

서비스 주체를 사용하여 AKS 클러스터를 Azure Arc에 연결

"소유자"인 구독에 액세스할 수 없는 경우 서비스 주체를 사용하여 AKS 클러스터를 Azure Arc에 연결할 수 있습니다.

첫 번째 명령은 서비스 주체 자격 증명을 묻는 메시지를 표시하고 변수에 $Credential 저장합니다. 메시지가 표시되면 사용자 이름에 대한 애플리케이션 ID를 입력한 다음, 서비스 주체 암호를 암호로 사용합니다. 구독 관리자로부터 이러한 값을 가져와야 합니다. 두 번째 명령은 변수에 저장된 서비스 주체 자격 증명을 사용하여 클러스터를 Azure Arc에 $Credential 연결합니다.

$Credential = Get-Credential
Enable-AksHciArcConnection -name $clusterName -subscriptionId $subscriptionId -resourceGroup $resourceGroup -credential $Credential -tenantId $tenantId -location $location

위의 명령에 사용된 서비스 주체에 할당된 "소유자" 역할이 있고 명령에 사용된 구독 ID에 대한 scope 있는지 확인합니다. 서비스 주체에 대한 자세한 내용은 Azure PowerShell 서비스 주체 Create 참조하세요.

AKS 클러스터를 Azure Arc에 연결하고 사용자 지정 위치를 사용하도록 설정

Azure Arc와 함께 클러스터에서 사용자 지정 위치를 사용하도록 설정하려면 다음 명령을 실행하여 사용자 지정 위치 애플리케이션의 개체 ID를 가져오고 서비스 주체를 사용하여 Azure Arc에 연결합니다.

$objectID = (Get-AzADServicePrincipal -ApplicationId "bc313c14-388c-4e7d-a58e-70017303ee3b").Id
Enable-AksHciArcConnection -name $clusterName -subscriptionId $subscriptionId -resourceGroup $resourceGroup -credential $Credential -tenantId $tenantId -location -customLocationsOid $objectID

연결된 클러스터 확인

Azure Portal Kubernetes 클러스터 리소스를 볼 수 있습니다. 브라우저에서 포털을 열면 enable-akshciarcconnection PowerShell 명령에 사용되는 리소스 이름 및 리소스 그룹 이름 입력을 기반으로 하는 리소스 그룹 및 AKS 리소스로 이동합니다.

참고

클러스터를 연결한 후 클러스터 메타데이터(클러스터 버전, 에이전트 버전, 노드 수)가 Azure Portal AKS 리소스의 개요 페이지에 표시되는 데 최대 5~10분이 걸릴 수 있습니다.

Kubernetes용 Azure Arc 에이전트

AKS는 네임스페이스에 몇 가지 연산자를 azure-arc 배포합니다. 다음 예제와 같이 를 사용하여 이러한 배포 및 Pod kubectl를 볼 수 있습니다.

kubectl -n azure-arc get deployments,pods

AKS는 네임스페이스에 배포된 클러스터에서 실행되는 몇 가지 에이전트(연산자)로 구성됩니다 azure-arc . 이러한 에이전트에 대한 자세한 내용은 이 개요를 참조하세요.

Azure Arc에서 AKS 클러스터 연결 끊기

AKS에서 클러스터의 연결을 끊으려면 Disable-AksHciArcConnection PowerShell 명령을 실행합니다. 명령을 실행하기 전에 Azure에 로그인해야 합니다.

Disable-AksHciArcConnection -Name $clusterName

다음 단계