Uzyskiwanie dostępu do klastra prywatnego Azure Kubernetes Service (AKS)

Podczas uzyskiwania dostępu do prywatnego klastra usługi AKS należy nawiązać połączenie z klastrem z sieci wirtualnej klastra, sieci równorzędnej lub skonfigurowanego prywatnego punktu końcowego. Te podejścia wymagają skonfigurowania sieci VPN, usługi Express Route, wdrożenia serwera przesiadkowego w sieci wirtualnej klastra lub utworzenia prywatnego punktu końcowego wewnątrz innej sieci wirtualnej.

Za pomocą command invoke interfejsu wiersza polecenia platformy Azure można uzyskiwać dostęp do klastrów prywatnych bez konieczności konfigurowania sieci VPN lub usługi Express Route. command invoke Umożliwia zdalne wywoływanie poleceń, takich jak kubectl i helm, w klastrze prywatnym za pośrednictwem interfejsu API platformy Azure bez bezpośredniego nawiązywania połączenia z klastrem. Akcje Microsoft.ContainerService/managedClusters/runcommand/action i Microsoft.ContainerService/managedclusters/commandResults/read kontrolują uprawnienia do używania elementu command invoke.

Za pomocą witryny Azure Portal możesz użyć Run command funkcji do uruchamiania poleceń w klastrze prywatnym. Funkcja Run command używa tej samej command invoke funkcji do uruchamiania poleceń w klastrze.

Zanim rozpoczniesz

Przed rozpoczęciem upewnij się, że masz następujące zasoby i uprawnienia:

  • Istniejący klaster prywatny. Jeśli go nie masz, zobacz Tworzenie prywatnego klastra usługi AKS.
  • Interfejs wiersza polecenia platformy Azure w wersji 2.24.0 lub nowszej. Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
  • Dostęp do Microsoft.ContainerService/managedClusters/runcommand/action ról i Microsoft.ContainerService/managedclusters/commandResults/read w klastrze.

Ograniczenia

Zasobnik utworzony przez run polecenie udostępnia helm i najnowszą zgodną wersję dla klastra kubectl za pomocą polecenia kustomize.

command invoke uruchamia polecenia z klastra, więc wszystkie polecenia uruchamiane w ten sposób podlegają skonfigurowanym ograniczeniom sieciowym i wszelkim innym skonfigurowanym ograniczeniom. Upewnij się, że w klastrze jest wystarczająca liczba węzłów i zasobów, aby zaplanować ten zasobnik poleceń.

Uwaga

Dane wyjściowe dla elementu command invoke są ograniczone do rozmiaru 512kB.

Uruchamianie poleceń w klastrze usługi AKS

Użyj command invoke polecenia , aby uruchomić pojedyncze polecenie

  • Uruchom polecenie w klastrze przy użyciu az aks command invoke --command polecenia . Poniższe przykładowe polecenie uruchamia polecenie w klastrze myPrivateCluster w grupie myResourceGroup.kubectl get pods -n kube-system

    az aks command invoke \
      --resource-group myResourceGroup \
      --name myPrivateCluster \
      --command "kubectl get pods -n kube-system"
    

Użyj command invoke polecenia , aby uruchomić wiele poleceń

  • Uruchom wiele poleceń w klastrze przy użyciu az aks command invoke --command polecenia . Następujące przykładowe polecenie uruchamia trzy helm polecenia w klastrze myPrivateCluster w grupie myResourceGroup.

    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"
    

Użyj command invoke polecenia do uruchamiania poleceń z dołączonym plikiem lub katalogiem

  • Uruchom polecenia z dołączonym plikiem lub katalogiem przy użyciu az aks command invoke --command polecenia z parametrem --file . Następujące przykładowe polecenie jest uruchamiane kubectl apply -f deployment.yaml -n default w klastrze myPrivateCluster w grupie myResourceGroup. Plik deployment.yaml jest dołączony z bieżącego katalogu na komputerze dewelopera, na którym az aks command invoke został uruchomiony.

    az aks command invoke \
      --resource-group myResourceGroup \
      --name myPrivateCluster \
      --command "kubectl apply -f deployment.yaml -n default" \
      --file deployment.yaml
    

Użyj command invoke polecenia , aby uruchomić polecenia ze wszystkimi plikami w bieżącym katalogu dołączonym

  • Uruchom polecenia ze wszystkimi plikami w bieżącym katalogu dołączonym az aks command invoke --command przy użyciu polecenia z parametrem --file . Następujące przykładowe polecenie jest uruchamiane kubectl apply -f deployment.yaml configmap.yaml -n default w klastrze myPrivateCluster w grupie myResourceGroup. Pliki deployment.yaml i configmap.yaml są częścią bieżącego katalogu na komputerze dewelopera, na którym az aks command invoke został uruchomiony.

    az aks command invoke \
      --resource-group myResourceGroup \
      --name myPrivateCluster \
      --command "kubectl apply -f deployment.yaml configmap.yaml -n default" \
      --file .