Uzyskiwanie dostępu do prywatnego klastra usługi Azure Kubernetes Service (AKS) przy użyciu funkcji wywołania polecenia lub uruchomienia polecenia
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.
Zasobnik utworzony przez program Run command
zapewnia kubectl
i helm
do obsługi klastra. jq
, xargs
, grep
i awk
są dostępne dla obsługi powłoki Bash.
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 iMicrosoft.ContainerService/managedclusters/commandResults/read
w klastrze.
Ograniczenia
Ta funkcja została zaprojektowana tak, aby uprościć dostęp do klastra i nie jest przeznaczona do dostępu programowego. Jeśli masz program wywołać platformę Kubernetes przy użyciu programu Run command
, mają zastosowanie następujące wady:
- Uzyskasz tylko kod exitCode i dane wyjściowe tekstowe i utracisz szczegóły na poziomie interfejsu API.
- Jeden dodatkowy przeskok wprowadza dodatkowe punkty awarii.
Zasobnik utworzony przez Run command
element jest zakodowany w kodzie z żądaniem 200m CPU
i 500Mi memory
oraz limitem500m CPU
.1Gi memory
W rzadkich przypadkach, gdy cały węzeł jest zapakowany, zasobnik nie może być zaplanowany w ramach ograniczenia interfejsu API usługi ARM 60 sekund. Oznacza to, że element zakończy się niepowodzeniem Run command
, nawet jeśli jest skonfigurowany do automatycznego skalowania.
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 trzyhelm
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 uruchamianekubectl apply -f deployment.yaml -n default
w klastrze myPrivateCluster w grupie myResourceGroup. Plikdeployment.yaml
jest dołączony z bieżącego katalogu na komputerze dewelopera, na którymaz 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 uruchamianekubectl apply -f deployment.yaml configmap.yaml -n default
w klastrze myPrivateCluster w grupie myResourceGroup. Plikideployment.yaml
iconfigmap.yaml
są częścią bieżącego katalogu na komputerze dewelopera, na którymaz 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 .
Rozwiązywanie problemów
Aby uzyskać informacje na temat najczęstszych problemów i az aks command invoke
sposobu ich rozwiązywania, zobacz Rozwiązywanie az aks command invoke
błędów.
Następne kroki
W tym artykule przedstawiono sposób uzyskiwania dostępu do klastra prywatnego i uruchamiania poleceń w tym klastrze. Aby uzyskać więcej informacji na temat klastrów usługi AKS, zobacz następujące artykuły:
Azure Kubernetes Service