프라이빗 AKS(Azure Kubernetes Service) 클러스터에 액세스

프라이빗 AKS 클러스터에 액세스할 때 클러스터 가상 네트워크, 피어링된 네트워크 또는 구성된 프라이빗 엔드포인트에서 클러스터에 연결해야 합니다. 이러한 방법을 사용하려면 VPN, Express Route를 구성하거나 클러스터 가상 네트워크 내에 Jumpbox를 배포하거나 다른 가상 네트워크 내에 프라이빗 엔드포인트를 만들어야 합니다.

Azure CLI를 사용하면 VPN 또는 Express Route를 구성할 필요 없이 command invoke를 사용하여 프라이빗 클러스터에 액세스할 수 있습니다. command invoke를 사용하면 클러스터에 직접 연결하지 않고도 Azure API를 통해 프라이빗 클러스터에서 kubectlhelm 같은 명령을 원격으로 호출할 수 있습니다. Microsoft.ContainerService/managedClusters/runcommand/actionMicrosoft.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/actionMicrosoft.ContainerService/managedclusters/commandResults/read 역할에 대한 액세스 권한입니다.

제한 사항

run 명령으로 만든 Pod는 kustomize를 사용하여 클러스터에 대해 helmkubectl의 최신 호환 버전을 제공합니다.

command invoke는 클러스터에서 명령을 실행하므로 이러한 방식으로 실행되는 모든 명령은 구성된 네트워킹 제한 및 기타 구성된 제한 사항이 적용됩니다. 클러스터에 이 명령 Pod를 예약하기에 충분한 노드와 리소스가 있는지 확인합니다.

참고 항목

command invoke의 출력 크기는 512kB로 제한됩니다.

AKS 클러스터에서 명령 실행

command invoke를 사용하여 단일 명령 실행

  • az aks command invoke --command 명령을 사용하여 클러스터에서 명령을 실행합니다. 다음 예제 명령은 myResourceGroupmyPrivateCluster 클러스터에서 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 명령을 사용하여 클러스터에서 여러 명령을 실행합니다. 다음 예제 명령은 myResourceGroupmyPrivateCluster 클러스터에서 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 명령을 사용하여 연결된 파일 또는 디렉터리와 함께 명령을 실행합니다. 다음 예제 명령은 myResourceGroupmyPrivateCluster 클러스터에서 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 명령을 사용하여 현재 디렉터리의 모든 파일이 연결된 상태에서 명령을 실행합니다. 다음 예제 명령은 myResourceGroupmyPrivateCluster 클러스터에서 kubectl apply -f deployment.yaml configmap.yaml -n default를 실행합니다. deployment.yamlconfigmap.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 .