Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Gdy uzyskujesz dostęp do prywatnego klastra usługi Azure Kubernetes Service (AKS), musisz nawiązać połączenie z klastrem z sieci wirtualnej klastra , sieci równorzędnej lub skonfigurowanego prywatnego punktu końcowego. Te podejścia wymagają dodatkowej konfiguracji, takiej jak konfigurowanie sieci VPN lub usługi Express Route.
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 RBAC Microsoft.ContainerService/managedClusters/runcommand/action i Microsoft.ContainerService/managedClusters/commandResults/read kontrolują uprawnienia do używania 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 Run command zapewnia kubectl i helm do obsługi klastra.
jq, xargs, grepi awk są dostępne dla obsługi powłoki Bash.
Wskazówka
Do uruchamiania poleceń kubectl w portalu Azure można użyć Azure Copilot. Aby uzyskać więcej informacji, zobacz Praca z klastrami AKS wydajnie przy użyciu rozwiązania Azure Copilot.
Wymagania wstępne
Wymagania systemowe i uprawnienia
| Typ wymagania | Specification | Jak to sprawdzić |
|---|---|---|
| Wersja interfejsu wiersza polecenia platformy Azure | 2.24.0 lub nowsza | Użyj polecenia az --version, aby sprawdzić swoją wersję. |
| Prywatny klaster AKS | Musi już istnieć | Jeśli nie masz istniejącego klastra prywatnego, wykonaj kroki opisane w temacie Tworzenie prywatnego klastra usługi AKS. |
| Akcje RBAC |
Microsoft.ContainerService/managedClusters/runcommand/action i Microsoft.ContainerService/managedClusters/commandResults/read |
Sprawdź, czy używasz strony Kontrola dostępu (IAM) w portalu Azure lub za pomocą polecenia Azure CLI. |
Specyfikacje zasobów podów uruchomieniowych
| Typ zasobu | Wartość | Wpływ |
|---|---|---|
| Żądania CPU | 200 m | Minimalna rezerwa procesora CPU zarezerwowana dla modułu sterowania |
| Żądania pamięci | 500Mi | Minimalna ilość pamięci zarezerwowanej dla zasobnika poleceń |
| Limity procesora CPU | 500 m | Maksymalna liczba dostępnych procesorów dla zasobnika poleceń |
| Limity pamięci | 1Gi | Maksymalna pamięć dostępna dla zasobnika komend |
| Limit czasu interfejsu API usługi Azure Resource Manager (ARM) | 60 sekund | Maksymalny czas planowania zasobników |
| Limit rozmiaru danych wyjściowych | 512kB | Maksymalny rozmiar danych wyjściowych polecenia |
Ograniczenia i zagadnienia
Zakres projektu
- Nie dotyczy dostępu programowego: użyj usługi Bastion, sieci VPN lub usługi ExpressRoute na potrzeby zautomatyzowanych wywołań interfejsu API.
- Zależność planowania podów: Wymaga wystarczających zasobów klastra (zobacz specyfikacje zasobów).
- Ograniczenia danych wyjściowych: exitCode i tylko tekst , bez szczegółów na poziomie interfejsu API.
- Obowiązują ograniczenia sieci: Podlegają ograniczeniom dotyczącym sieci i zabezpieczeń klastra.
Potencjalne punkty awarii
- Niepowodzenie planowania podów, jeśli węzły mają ograniczone zasoby.
- Ograniczenie czasowe interfejsu API ARM (60 sekund) w przypadku, gdy pod nie zostanie szybko umieszczony w harmonogramie.
- Obcinanie danych wyjściowych, jeśli odpowiedź przekracza limit 512kB.
Użyj command invoke w prywatnym klastrze AKS za pomocą Azure CLI
Ustaw zmienne środowiskowe dla grupy zasobów i nazwy klastra do użycia w kolejnych poleceniach.
export AKS_RESOURCE_GROUP="<resource-group-name>" export AKS_CLUSTER_NAME="<cluster-name>"Te zmienne środowiskowe umożliwiają uruchamianie poleceń usługi AKS bez konieczności ponownego zapisywania ich nazw.
Użyj command invoke polecenia , aby uruchomić pojedyncze polecenie
Uruchom pojedyncze polecenie w klastrze przy użyciu
az aks command invokepolecenia i parametru--command, aby określić polecenie do uruchomienia. Poniższy przykład pobiera zasobniki wkube-systemprzestrzeni nazw.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl get pods -n kube-system"
Użyj command invoke polecenia , aby uruchomić wiele poleceń
Uruchom wiele poleceń w klastrze, używając polecenia
az aks command invokei parametru--command, aby określić, które polecenia mają być uruchomione. W poniższym przykładzie dodano repozytorium Bitnami dla Helm, zaktualizowano repozytorium i zainstalowano wykresnginx.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "helm repo add bitnami https://charts.bitnami.com/bitnami && helm repo update && helm install my-release bitnami/nginx"
Użyj command invoke do uruchomienia polecenia z dołączonym plikiem
Jeśli chcesz uruchomić polecenie z dołączonym plikiem, plik musi istnieć i być dostępny w bieżącym katalogu roboczym. W poniższym przykładzie utworzymy minimalny plik wdrożenia na potrzeby pokazu.
Utwórz plik manifestu kubernetes o nazwie
deployment.yaml. Poniższy przykładowy plik wdrożenia wdrażanginxpod.cat <<EOF > deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-demo spec: replicas: 1 selector: matchLabels: app: nginx-demo template: metadata: labels: app: nginx-demo spec: containers: - name: nginx image: nginx:1.21.6 ports: - containerPort: 80 EOFUżyj pliku wdrożenia na swoim klastrze, stosując polecenie
az aks command invokez parametrem--filedo dołączenia pliku. Poniższy przykład stosuje plikdeployment.yamldo przestrzeni nazwdefault.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl apply -f deployment.yaml -n default" \ --file deployment.yaml
Użyj command invoke aby uruchomić polecenia na wszystkich plikach w bieżącym katalogu
Uwaga
Używaj tylko małych, niezbędnych plików, aby uniknąć przekroczenia limitów rozmiaru systemu.
W poniższym przykładzie utworzymy dwa minimalne pliki wdrożenia na potrzeby pokazu.
Utwórz dwa pliki manifestu kubernetes o nazwach
deployment.yamliconfigmap.yaml. Poniższe przykładowe pliki wdrażania wdrażają podnginxi tworzą ConfigMap z komunikatem powitalnym.cat <<EOF > deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-demo spec: replicas: 1 selector: matchLabels: app: nginx-demo template: metadata: labels: app: nginx-demo spec: containers: - name: nginx image: nginx:1.21.6 ports: - containerPort: 80 EOF cat <<EOF > configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: nginx-config data: welcome-message: "Hello from configmap" EOFZastosuj pliki wdrożeniowe do klastra przy użyciu polecenia
az aks command invokez parametrem--fileaby dołączyć plik. Poniższy przykład stosuje plikideployment.yamliconfigmap.yamldo przestrzeni nazwdefault.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl apply -f deployment.yaml -f configmap.yaml -n default" \ --file deployment.yaml \ --file configmap.yaml
Użyj Run command w prywatnym klastrze AKS w Azure Portal
Można użyć następujących poleceń kubectl z funkcją Run command:
kubectl get nodeskubectl get deploymentskubectl get podskubectl describe nodeskubectl describe pod <pod-name>kubectl describe deployment <deployment-name>kubectl apply -f <file-name>
Użyj Run command polecenia , aby uruchomić pojedyncze polecenie
- W witrynie Azure Portal przejdź do klastra prywatnego.
- W menu usługi w obszarze Zasoby kubernetes wybierz pozycję Uruchom polecenie.
- Wprowadź polecenie, które chcesz uruchomić, a następnie wybierz pozycję Uruchom.
Użyj Run command polecenia do uruchamiania poleceń z dołączonymi plikami
W witrynie Azure Portal przejdź do klastra prywatnego.
W menu usługi w obszarze Zasoby kubernetes wybierz pozycję Uruchom polecenie.
Wybierz pozycję Dołącz pliki>Przeglądaj w poszukiwaniu plików.
Wybierz plik lub pliki, które chcesz dołączyć, a następnie wybierz pozycję Dołącz.
Wprowadź polecenie, które chcesz uruchomić, a następnie wybierz pozycję Uruchom.
Wyłączać Run command
Możesz wyłączyć funkcję Run command poprzez ustawienie .properties.apiServerAccessProfile.disableRunCommand na true.
Rozwiąż command invoke problemy
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.
Treści powiązane
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: