Azure Machine Learning 작업 영역에 Kubernetes 클러스터 연결

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

Azure Machine Learning 확장이 AKS 또는 Arc Kubernetes 클러스터에 배포되면 Kubernetes 클러스터를 Azure Machine Learning 작업 영역에 연결하고 ML 전문가가 사용할 컴퓨팅 대상을 만들 수 있습니다.

필수 조건

Kubernetes 클러스터를 Azure Machine Learning 작업 영역에 연결하면 다양한 시나리오를 유연하게 지원할 수 있습니다. 예를 들어 여러 첨부 파일이 있는 공유 시나리오, Azure 리소스에 액세스하는 모델 학습 스크립트 및 작업 영역의 인증 구성이 있습니다.

다중 연결 및 워크로드 격리

하나의 작업 영역에 하나의 클러스터, 여러 컴퓨팅 대상 만들기

  • 동일한 Kubernetes 클러스터의 경우 동일한 작업 영역에 여러 번 연결하고 다른 프로젝트/팀/워크로드에 대해 여러 컴퓨팅 대상을 만들 수 있습니다.

여러 작업 영역에 하나의 클러스터

  • 동일한 Kubernetes 클러스터의 경우 여러 작업 영역에 연결할 수도 있으며 여러 작업 영역에서 동일한 Kubernetes 클러스터를 공유할 수 있습니다.

서로 다른 프로젝트/팀에 서로 다른 컴퓨팅 대상을 두려는 경우 컴퓨팅 대상에 대해 클러스터에 기존 Kubernetes 네임스페이스를 지정하여 여러 팀/프로젝트 간에 워크로드를 격리할 수 있습니다.

Important

클러스터를 Azure Machine Learning 작업 영역에 연결할 때 지정하려는 네임스페이스는 클러스터에서 이전에 만들어져야 합니다.

학습 스크립트에서 Azure 리소스에 안전하게 액세스

학습 스크립트에서 Azure 리소스에 안전하게 액세스해야 하는 경우 연결 작업 중에 Kubernetes 컴퓨팅 대상에 대한 관리 ID를 지정할 수 있습니다.

사용자 할당 관리 ID를 사용하여 작업 영역에 연결

Azure Machine Learning 작업 영역은 기본적으로 Azure Machine Learning 리소스에 액세스하기 위해 시스템 할당 관리 ID를 보유합니다. 시스템 할당 기본 설정이 켜져 있으면 단계가 완료됩니다.

그렇지 않고 Azure Machine Learning 작업 영역을 만들 때 사용자가 할당한 ID가 지정되면 컴퓨팅을 연결하기 전에 다음 역할 할당을 ID에 수동으로 부여해야 합니다.

Azure 리소스 이름 할당할 역할 설명
Azure Relay Azure Relay 소유자 Arc 지원 Kubernetes 클러스터에만 적용됩니다. Arc가 연결되지 않은 AKS 클러스터에 대해 Azure Relay가 만들어지지 않습니다.
Kubernetes - Azure Arc 또는 Azure Kubernetes Service 판독기
Kubernetes 확장 기여자
Azure Kubernetes Service 클러스터 관리자
Arc 지원 Kubernetes 클러스터와 AKS 클러스터 모두에 적용됩니다.

Azure Relay 리소스는 Arc 지원 Kubernetes 클러스터와 동일한 리소스 그룹에서 확장 배포 중에 만들어집니다.

참고 항목

  • "Kubernetes 확장 기여자" 역할 권한을 사용할 수 없는 경우 "확장이 설치되지 않음" 오류와 함께 클러스터 연결이 실패합니다.
  • "Azure Kubernetes Service 클러스터 관리자" 역할 권한을 사용할 수 없는 경우 "내부 서버" 오류와 함께 클러스터 연결이 실패합니다.

Azure Machine Learning 작업 영역에 Kubernetes 클러스터를 연결하는 방법

Azure CLI 또는 스튜디오 UI를 사용하여 Kubernetes 클러스터를 Azure Machine Learning 작업 영역에 연결하는 두 가지 방법을 지원합니다.

다음 CLI v2 명령은 AKS 및 Azure Arc 사용 Kubernetes 클러스터를 연결하고 이를 관리 ID가 사용하도록 설정된 컴퓨팅 대상으로 사용하는 방법을 보여 줍니다.

AKS 클러스터

az ml compute attach --resource-group <resource-group-name> --workspace-name <workspace-name> --type Kubernetes --name k8s-compute --resource-id "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerService/managedclusters/<cluster-name>" --identity-type SystemAssigned --namespace <Kubernetes namespace to run Azure Machine Learning workloads> --no-wait

Arc Kubernetes 클러스터

az ml compute attach --resource-group <resource-group-name> --workspace-name <workspace-name> --type Kubernetes --name amlarc-compute --resource-id "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Kubernetes/connectedClusters/<cluster-name>" --user-assigned-identities "subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>" --no-wait

--type 인수를 Kubernetes로 설정합니다. identity_type 인수를 사용하여 SystemAssigned 또는 UserAssigned 관리 ID를 사용하도록 설정합니다.

Important

--user-assigned-identitiesUserAssigned 관리 ID에만 필요합니다. 쉼표로 구분된 사용자 관리 ID 목록을 제공할 수 있지만, 클러스터를 연결할 때 첫 번째 ID만 사용됩니다.

컴퓨팅 연결은 Kubernetes 네임스페이스를 자동으로 만들거나 kubernetes 네임스페이스가 존재했는지 여부를 확인하지 않습니다. 지정된 네임스페이스가 클러스터에 있는지 확인해야 합니다. 그렇지 않으면 이 컴퓨팅에 제출된 모든 Azure Machine Learning 워크로드가 실패합니다.

컴퓨팅 대상에 관리 ID 할당

개발자는 일반적으로 솔루션을 구성하는 서로 다른 구성 요소 간의 통신을 보호하는 데 사용되는 비밀과 자격 증명을 관리하는 데 어려움을 겪고 있습니다. 관리 ID를 통해 개발자는 자격 증명을 관리할 필요가 없습니다.

Docker 이미지에 대한 ACR(Azure Container Registry) 및 학습 데이터에 대한 스토리지 계정에 액세스하려면 시스템 할당 또는 사용자 할당 관리 ID를 사용하여 Kubernetes 컴퓨팅을 연결합니다.

관리 ID 할당

  • 컴퓨팅 연결 단계에서 컴퓨팅에 관리 ID를 할당할 수 있습니다.

  • 컴퓨팅이 이미 연결된 경우 Azure Machine Learning 스튜디오에서 관리 ID를 사용하도록 설정을 업데이트할 수 있습니다.

    • Azure Machine Learning 스튜디오로 이동합니다. 컴퓨팅, 연결된 컴퓨팅을 선택하고 연결된 컴퓨팅을 선택합니다.
    • 연필 아이콘을 선택하여 관리 ID를 편집합니다.

    Screenshot of updating identity of the Kubernetes compute from Azure portal.

    Screenshot of selecting identity of the Kubernetes compute from Azure portal.

관리 ID에 Azure 역할 할당

Azure는 관리 ID에 역할을 할당하는 몇 가지 방법을 제공합니다.

Azure Portal을 사용하여 역할을 할당하고 시스템 할당 관리 ID가 있는 경우 사용자 선택, 그룹 주체 또는 서비스 주체, 멤버 선택을 선택하여 ID 이름을 검색할 수 있습니다. ID 이름은 <workspace name>/computes/<compute target name> 형식이어야 합니다.

사용자 할당 관리 ID가 있는 경우 관리 ID를 선택하여 대상 ID를 찾습니다.

관리 ID를 사용하여 Azure Container Registry에서 이미지를 가져올 수 있습니다. 컴퓨팅 관리 ID에 AcrPull 역할을 부여합니다. 자세한 내용은 Azure Container Registry 역할 및 권한을 참조하세요.

관리 ID를 사용하여 Azure Blob에 액세스할 수 있습니다.

  • 읽기 전용의 경우 컴퓨팅 관리 ID에 Storage Blob 데이터 읽기 권한자 역할을 부여해야 합니다.
  • 읽기-쓰기를 위해 컴퓨팅 관리 ID에 Storage Blob 데이터 기여자 역할을 부여해야 합니다.

다음 단계