명령 호출 또는 실행 명령 기능을 사용하여 AKS(프라이빗 Azure Kubernetes Service) 클러스터에 액세스
프라이빗 AKS 클러스터에 액세스할 때 클러스터 가상 네트워크, 피어링된 네트워크 또는 구성된 프라이빗 엔드포인트에서 클러스터에 연결해야 합니다. 이러한 방법을 사용하려면 VPN, Express Route를 구성하거나 클러스터 가상 네트워크 내에 Jumpbox를 배포하거나 다른 가상 네트워크 내에 프라이빗 엔드포인트를 만들어야 합니다.
Azure CLI를 사용하면 VPN 또는 Express Route를 구성할 필요 없이 command invoke
를 사용하여 프라이빗 클러스터에 액세스할 수 있습니다. command invoke
를 사용하면 클러스터에 직접 연결하지 않고도 Azure API를 통해 프라이빗 클러스터에서 kubectl
및 helm
같은 명령을 원격으로 호출할 수 있습니다. Microsoft.ContainerService/managedClusters/runcommand/action
및 Microsoft.ContainerService/managedclusters/commandResults/read
작업은 command invoke
를 사용하기 위한 권한을 제어합니다.
Azure Portal을 사용하면 Run command
기능을 사용하여 프라이빗 클러스터에서 명령을 실행할 수 있습니다. Run command
기능은 동일한 command invoke
기능을 사용하여 클러스터에서 명령을 실행합니다.
시작하기 전에
시작하기 전에 다음 리소스 및 권한이 있는지 확인합니다.
- 기존 프라이빗 클러스터. 없는 경우 프라이빗 AKS 클러스터 만들기를 참조하세요.
- Azure CLI 버전 2.24.0 이상.
az --version
을 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요. - 클러스터의
Microsoft.ContainerService/managedClusters/runcommand/action
및Microsoft.ContainerService/managedclusters/commandResults/read
역할에 대한 액세스 권한입니다.
제한 사항
run
명령으로 만든 Pod는 kustomize
를 사용하여 클러스터에 대해 helm
및 kubectl
의 최신 호환 버전을 제공합니다.
command invoke
는 클러스터에서 명령을 실행하므로 이러한 방식으로 실행되는 모든 명령은 구성된 네트워킹 제한 및 기타 구성된 제한 사항이 적용됩니다. 클러스터에 이 명령 Pod를 예약하기에 충분한 노드와 리소스가 있는지 확인합니다.
참고 항목
command invoke
의 출력 크기는 512kB로 제한됩니다.
AKS 클러스터에서 명령 실행
command invoke
를 사용하여 단일 명령 실행
az aks command invoke --command
명령을 사용하여 클러스터에서 명령을 실행합니다. 다음 예제 명령은 myResourceGroup의 myPrivateCluster 클러스터에서kubectl get pods -n kube-system
명령을 실행합니다.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl get pods -n kube-system"
command invoke
를 사용하여 여러 명령 실행
az aks command invoke --command
명령을 사용하여 클러스터에서 여러 명령을 실행합니다. 다음 예제 명령은 myResourceGroup의 myPrivateCluster 클러스터에서 3개의helm
명령을 실행합니다.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "helm repo add bitnami https://charts.bitnami.com/bitnami && helm repo update && helm install my-release bitnami/nginx"
command invoke
를 사용하여 첨부된 파일 또는 디렉터리로 명령을 실행합니다.
--file
매개 변수와 함께az aks command invoke --command
명령을 사용하여 연결된 파일 또는 디렉터리와 함께 명령을 실행합니다. 다음 예제 명령은 myResourceGroup의 myPrivateCluster 클러스터에서kubectl apply -f deployment.yaml -n default
를 실행합니다.deployment.yaml
파일은az aks command invoke
가 실행된 개발 컴퓨터의 현재 디렉터리에서 첨부됩니다.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl apply -f deployment.yaml -n default" \ --file deployment.yaml
현재 디렉터리의 모든 파일이 연결된 상태에서 command invoke
를 사용하여 명령 실행
--file
매개 변수와 함께az aks command invoke --command
명령을 사용하여 현재 디렉터리의 모든 파일이 연결된 상태에서 명령을 실행합니다. 다음 예제 명령은 myResourceGroup의 myPrivateCluster 클러스터에서kubectl apply -f deployment.yaml configmap.yaml -n default
를 실행합니다.deployment.yaml
및configmap.yaml
파일은az aks command invoke
가 실행된 개발 컴퓨터의 현재 디렉터리 일부입니다.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl apply -f deployment.yaml configmap.yaml -n default" \ --file .
문제 해결
az aks command invoke
과 관련된 가장 일반적인 문제 및 해결 방법에 대한 자세한 내용은 az aks command invoke
오류 해결을 참조하세요.
다음 단계
이 문서에서는 프라이빗 클러스터에 액세스하고 해당 클러스터에서 명령을 실행하는 방법을 알아보았습니다. AKS 클러스터에 대한 자세한 내용은 다음 문서를 참조하세요.
Azure Kubernetes Service