다음을 통해 공유


Azure CLI를 사용하여 클러스터 확장 배포 및 관리

업데이트 및 구성과 관련된 옵션을 포함하여 필수 및 선택적 매개 변수를 설정하여 AKS 클러스터에서 확장 인스턴스를 만들 수 있습니다. 확장 인스턴스를 보고, 나열하고, 업데이트하고, 삭제할 수도 있습니다.

시작하기 전에 클러스터 확장에 대해 알아봅니다.

참고 항목

이 문서에서 제공하는 예제는 완전되지 않으며 기능을 보여 주기 위한 것일 뿐입니다. 명령 및 해당 매개 변수의 전체 목록은 az k8s-extension CLI 참조를 참조하세요.

필수 구성 요소

  • Azure 구독 Azure 구독이 없는 경우 무료 계정을 만들 수 있습니다.

  • Microsoft.ContainerServiceMicrosoft.KubernetesConfiguration 리소스 공급자는 구독에 등록되어 있어야 합니다. 이러한 공급자를 등록하려면 다음 명령을 실행합니다.

    az provider register --namespace Microsoft.ContainerService --wait 
    az provider register --namespace Microsoft.KubernetesConfiguration --wait 
    
  • AKS 클러스터. 클러스터 확장이 서비스 주체 기반 클러스터에서 작동하지 않으므로 이 클러스터는 관리 ID를 사용하여 만들어야 합니다. az aks create를 사용하여 만든 새 클러스터의 경우 관리 ID는 기본적으로 구성됩니다. 기존 서비스 주체 기반 클러스터의 경우 --enable-managed-identity 플래그로 az aks update를 실행하여 ID를 관리하도록 전환합니다. 자세한 내용은 관리 ID 사용을 참조하세요.

  • Azure CLI 버전 >= 2.16.0이 설치되었습니다. 최신 버전을 사용하는 것이 좋습니다.

  • k8s-extension Azure CLI 확장의 최신 버전입니다. 다음 명령을 실행하여 확장을 설치합니다.

    az extension add --name k8s-extension
    

    확장이 이미 설치된 경우 다음 명령을 사용하여 최신 버전을 실행하고 있는지 확인합니다.

    az extension update --name k8s-extension
    

확장 인스턴스 만들기

필수 매개 변수에 대한 값을 전달하면서 k8s-extension create를 사용하여 새 확장 인스턴스를 만듭니다. 이 예제 명령은 AKS 클러스터에 Azure Machine Learning 확장 인스턴스를 만듭니다.

az k8s-extension create --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --configuration-settings enableInference=True allowInsecureConnections=True inferenceRouterServiceType=LoadBalancer

이 예제 명령은 AKS 클러스터에 샘플 Kubernetes 애플리케이션(Marketplace에 게시됨)을 만듭니다.

az k8s-extension create --name voteapp --extension-type Contoso.AzureVoteKubernetesAppTest --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --plan-name testPlanID --plan-product testOfferID --plan-publisher testPublisherID --configuration-settings title=VoteAnimal value1=Cats value2=Dogs

참고 항목

클러스터 확장 서비스는 48시간 이상 중요한 정보를 유지할 수 없습니다. 클러스터 확장 에이전트가 48시간 이상 네트워크에 연결되지 않고 클러스터에서 확장을 만들지 여부를 결정할 수 없는 경우 확장은 Failed 상태로 전환됩니다. Failed 상태가 되면 k8s-extension create를 다시 실행하여 새로운 확장 인스턴스를 만들어야 합니다.

필수 매개 변수

매개 변수 이름 설명
--name 확장의 이름입니다.
--extension-type 클러스터에 설치하려는 확장의 유형입니다. 예: Microsoft.AzureML.Kubernetes
--cluster-name 확장 인스턴스를 만들어야 하는 AKS 클러스터의 이름
--resource-group AKS 클러스터를 포함하는 리소스 그룹
--cluster-type 확장 인스턴스를 만들어야 하는 클러스터 유형입니다. AKS 클러스터에 매핑할 때 managedClusters를 지정합니다.

선택적 매개 변수

매개 변수 이름 설명
--auto-upgrade-minor-version 확장 부 버전이 자동으로 업그레이드될지 여부를 지정하는 부울 속성입니다. 기본값: true. 이 매개 변수를 true로 설정하면 버전이 동적으로 업데이트되므로 version 매개 변수를 설정할 수 없습니다. false로 설정된 경우 확장은 패치 버전에 대해서도 자동으로 업그레이드되지 않습니다.
--version 설치할 확장의 버전(확장 인스턴스를 고정할 특정 버전)입니다. auto-upgrade-minor-version이 true로 설정된 경우에는 제공되지 않아야 합니다.
--configuration-settings 기능을 제어하기 위해 확장에 전달할 수 있는 설정입니다. 매개 변수 이름 다음에 공백으로 구분된 key=value 쌍으로 값을 전달합니다. 이 매개 변수를 명령에 사용하는 경우에는 동일한 명령에서 --configuration-settings-file를 사용할 수 없습니다.
--configuration-settings-file 구성 설정을 확장에 전달하는 데 사용되는 키 값 쌍이 포함된 JSON 파일의 경로입니다. 이 매개 변수를 명령에 사용하는 경우에는 동일한 명령에서 --configuration-settings를 사용할 수 없습니다.
--configuration-protected-settings 이러한 설정은 GET API 호출 또는 az k8s-extension show 명령을 사용하여 검색할 수 없으므로 중요한 설정을 전달하는 데 사용됩니다. 매개 변수 이름 다음에 공백으로 구분된 key=value 쌍으로 값을 전달합니다. 이 매개 변수를 명령에 사용하는 경우에는 동일한 명령에서 --configuration-protected-settings-file를 사용할 수 없습니다.
--configuration-protected-settings-file 중요한 설정을 확장에 전달하는 데 사용되는 키 값 쌍이 포함된 JSON 파일의 경로입니다. 이 매개 변수를 명령에 사용하는 경우에는 동일한 명령에서 --configuration-protected-settings를 사용할 수 없습니다.
--scope cluster 또는 namespace 확장에 대한 설치 범위
--release-namespace 이 매개 변수는 릴리스가 생성될 네임스페이스를 나타냅니다. 이 매개 변수는 scope 매개 변수가 cluster로 설정되어 있는 경우에만 적용됩니다.
--release-train 확장 작성자는 Stable, Preview 등의 다양한 릴리스 학습으로 버전을 게시할 수 있습니다. 이 매개 변수를 명시적으로 설정하지 않으면 Stable이 기본값으로 사용됩니다. --auto-upgrade-minor-version 매개 변수가 false로 설정된 경우에는 이 매개 변수를 사용할 수 없습니다.
--target-namespace 이 매개 변수는 릴리스가 생성되는 네임스페이스를 나타냅니다. 이 확장 인스턴스에 대해 만든 시스템 계정의 사용 권한은 이 네임스페이스로 제한됩니다. 이 매개 변수는 scope 매개 변수가 namespace로 설정되어 있는 경우에만 적용됩니다.
--plan-name 사용량 정보 + 지원 아래 Azure Portal의 Marketplace 페이지에 있는 확장의 계획 ID입니다.
--plan-product 사용량 정보 + 지원 아래 Azure Portal의 Marketplace 페이지에 있는 확장의 제품 ID입니다. 이 예제는 사용된 ISV 제품의 이름입니다.
--plan-publisher 사용량 정보 + 지원 아래 Azure Portal의 Marketplace 페이지에 있는 확장의 게시자 ID입니다.

확장 인스턴스의 세부 정보 표시

필수 매개 변수에 대한 값을 전달하면서 k8s-extension show를 사용하여 현재 설치된 확장 인스턴스를 확인합니다.

az k8s-extension show --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

클러스터에 설치된 모든 확장 나열

클러스터에 설치된 모든 확장을 나열하려면 k8s-extension list를 사용하여 필수 매개 변수에 대한 값을 전달합니다.

az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

확장 인스턴스 업데이트

참고 항목

업데이트할 수 있는 --configuration-settings--configuration-protected-settings의 특정 설정을 이해하려면 특정 확장 유형에 대한 설명서를 참조하세요. --configuration-protected-settings의 경우 하나의 설정만 업데이트되더라도 모든 설정이 제공되어야 합니다. 이러한 설정 중 하나라도 생략되면 해당 설정은 사용되지 않는 것으로 간주되어 삭제됩니다.

기존 확장 인스턴스를 업데이트하려면 k8s-extension update를 사용하여 필수 매개 변수에 대한 값을 전달합니다. 다음 명령은 Azure Machine Learning 확장 인스턴스에 대한 자동 업그레이드 설정을 업데이트합니다.

az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

업데이트에 필요한 매개 변수

매개 변수 이름 설명
--name 확장의 이름입니다.
--extension-type 클러스터에 설치하려는 확장의 유형입니다. 예: Microsoft.AzureML.Kubernetes
--cluster-name 확장 인스턴스를 만들어야 하는 AKS 클러스터의 이름
--resource-group AKS 클러스터를 포함하는 리소스 그룹
--cluster-type 확장 인스턴스를 만들어야 하는 클러스터 유형입니다. AKS 클러스터에 매핑할 때 managedClusters를 지정합니다.

Marketplace를 통해 조달된 Kubernetes 애플리케이션을 업데이트하는 경우 다음 매개 변수도 필요합니다.

매개 변수 이름 설명
--plan-name 사용량 정보 + 지원 아래 Azure Portal의 Marketplace 페이지에 있는 확장의 계획 ID입니다.
--plan-product 사용량 정보 + 지원 아래 Azure Portal의 Marketplace 페이지에 있는 확장의 제품 ID입니다. 이 예제는 사용된 ISV 제품의 이름입니다.
--plan-publisher 사용량 정보 + 지원 아래 Azure Portal의 Marketplace 페이지에 있는 확장의 게시자 ID입니다.

업데이트에 대한 선택적 매개 변수

매개 변수 이름 설명
--auto-upgrade-minor-version 확장 부 버전이 자동으로 업그레이드될지 여부를 지정하는 부울 속성입니다. 기본값: true. 이 매개 변수를 true로 설정하면 버전이 동적으로 업데이트되므로 version 매개 변수를 설정할 수 없습니다. false로 설정된 경우 확장은 패치 버전에 대해서도 자동으로 업그레이드되지 않습니다.
--version 설치할 확장의 버전(확장 인스턴스를 고정할 특정 버전)입니다. auto-upgrade-minor-version이 true로 설정된 경우에는 제공되지 않아야 합니다.
--configuration-settings 기능을 제어하기 위해 확장에 전달할 수 있는 설정입니다. 업데이트가 필요한 설정만 제공하면 됩니다. 제공된 설정은 제공된 값으로 대체됩니다. 매개 변수 이름 다음에 공백으로 구분된 key=value 쌍으로 값을 전달합니다. 이 매개 변수를 명령에 사용하는 경우에는 동일한 명령에서 --configuration-settings-file를 사용할 수 없습니다.
--configuration-settings-file 구성 설정을 확장에 전달하는 데 사용되는 키 값 쌍이 포함된 JSON 파일의 경로입니다. 이 매개 변수를 명령에 사용하는 경우에는 동일한 명령에서 --configuration-settings를 사용할 수 없습니다.
--configuration-protected-settings 이러한 설정은 GET API 호출 또는 az k8s-extension show 명령을 사용하여 검색할 수 없으므로 중요한 설정을 전달하는 데 사용됩니다. 설정을 업데이트할 때 모든 설정을 지정해야 합니다. 일부 설정을 생략하면 이러한 설정이 사용되지 않는 것으로 간주되어 삭제됩니다. 매개 변수 이름 다음에 공백으로 구분된 key=value 쌍으로 값을 전달합니다. 이 매개 변수를 명령에 사용하는 경우에는 동일한 명령에서 --configuration-protected-settings-file를 사용할 수 없습니다.
--configuration-protected-settings-file 중요한 설정을 확장에 전달하는 데 사용되는 키 값 쌍이 포함된 JSON 파일의 경로입니다. 이 매개 변수를 명령에 사용하는 경우에는 동일한 명령에서 --configuration-protected-settings를 사용할 수 없습니다.
--scope cluster 또는 namespace 확장에 대한 설치 범위
--release-train 확장 작성자는 Stable, Preview 등의 다양한 릴리스 학습으로 버전을 게시할 수 있습니다. 이 매개 변수를 명시적으로 설정하지 않으면 Stable이 기본값으로 사용됩니다. autoUpgradeMinorVersion 매개 변수가 false로 설정된 경우에는 이 매개 변수를 사용할 수 없습니다.

확장 인스턴스 삭제

필수 매개 변수에 대한 값을 전달하면서 k8s-extension-delete를 사용하여 클러스터에서 확장 인스턴스를 삭제합니다.

az k8s-extension delete --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

참고 항목

이 확장을 나타내는 Azure 리소스는 즉시 삭제됩니다. 이 확장과 연결된 클러스터의 Helm 릴리스는 Kubernetes 클러스터에서 실행 중인 에이전트가 네트워크에 연결되어 있고 Azure 서비스에 다시 연결하여 원하는 상태를 가져올 수 있는 경우에만 삭제됩니다.

다음 단계