Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie auf einen privaten Azure Kubernetes Service (AKS)-Cluster zugreifen, müssen Sie eine Verbindung mit dem Cluster aus dem virtuellen Clusternetzwerk (VNet), einem peered-Netzwerk oder einem konfigurierten privaten Endpunkt herstellen. Diese Ansätze erfordern eine zusätzliche Konfiguration, z. B. das Einrichten einer VPN- oder Expressroute.
Bei Verwendung der Azure-Befehlszeilenschnittstelle können Sie mit command invoke auf private Cluster zugreifen, ohne ein VPN oder ExpressRoute konfigurieren zu müssen.
Mit command invoke können Sie über die Azure-API Befehle wie kubectl und helm remote für Ihren privaten Cluster aufrufen, ohne eine direkte Verbindung mit dem Cluster herzustellen. Die RBAC-Aktionen Microsoft.ContainerService/managedClusters/runcommand/action und Microsoft.ContainerService/managedClusters/commandResults/read steuern die Berechtigungen für die Verwendung command invoke.
Wenn Sie das Azure-Portal nutzen, können Sie mit dem Run command-Feature Befehle für Ihren privaten Cluster ausführen. Das Run command-Feature verwendet dieselbe command invoke-Funktionalität zum Ausführen von Befehlen für Ihren Cluster. Der von Run command erstellte Pod bietet kubectl und helm für den Betrieb Ihres Clusters.
jq, xargs, grep und awk stehen für Bash-Support zur Verfügung.
Tipp
Sie können Azure Copilot verwenden, um Befehle im Azure-Portal auszuführen kubectl . Weitere Informationen finden Sie unter Effizientes Arbeiten mit AKS-Clustern mithilfe von Azure Copilot.
Voraussetzungen
System- und Berechtigungsanforderungen
| Anforderungstyp | Specification | So überprüfen Sie dies |
|---|---|---|
| Azure CLI-Version | 2.24.0 oder höher | Verwenden Sie den Befehl az --version, um Ihre Version zu überprüfen. |
| Privater AKS-Cluster | Muss bereits vorhanden sein | Wenn Sie über keinen privaten Cluster verfügen, führen Sie die Schritte unter Erstellen eines privaten AKS-Clusters aus. |
| RBAC-Aktionen |
Microsoft.ContainerService/managedClusters/runcommand/action und Microsoft.ContainerService/managedClusters/commandResults/read |
Führen Sie eine Überprüfung unter Verwendung der Azure portal Access control (IAM) Seite oder des az role assignment list Azure CLI-Befehls durch. |
Befehl Pod-Ressourcen-Spezifikationen ausführen
| Ressourcentyp | Wert | Auswirkung |
|---|---|---|
| CPU-Anforderungen | 200m | Minimale CPU-Reservierung für das Befehlsmodul |
| Speicheranforderungen | 500 MiB | Mindestspeicher für das Kommandomodul reserviert |
| CPU-Grenzwerte | 500 m | Maximale verfügbare CPU für den Befehls-Pod |
| Speicherbeschränkungen | 1Gi | Maximal verfügbarer Arbeitsspeicher für Befehls-Pod |
| Azure Resource Manager (ARM) API Timeout | 60 Sekunden | Maximale Zeit für die Pod-Planung |
| Ausgabegrößenbeschränkung | 512kB | Maximale Befehlsausgabegröße |
Einschränkungen und Überlegungen
Entwurfsbereich
- Nicht für den programmgesteuerten Zugriff: Verwenden Sie Bastion, VPN oder ExpressRoute für automatisierte API-Aufrufe.
- Pod-Planungsabhängigkeit: Erfordert ausreichende Clusterressourcen (siehe Ressourcenspezifikationen).
- Ausgabeeinschränkungen: ExitCode und Nur Text , keine Details auf API-Ebene.
- Netzwerkeinschränkungen gelten: Vorbehaltlich von Clusternetzwerken und Sicherheitseinschränkungen.
Mögliche Fehlerpunkte
- Pod-Planungsfehler, wenn Knoten ressourceneinschränkt sind.
- ARM API Timeout (60 Sekunden), wenn der Pod nicht schnell geplant werden kann.
- Ausgabekürzung, wenn die Antwort den Grenzwert von 512 kB überschreitet.
Verwenden Sie command invoke in einem privaten AKS-Cluster mit der Azure CLI.
Legen Sie Umgebungsvariablen für die Ressourcengruppe und den Clusternamen fest, die in nachfolgenden Befehlen verwendet werden sollen.
export AKS_RESOURCE_GROUP="<resource-group-name>" export AKS_CLUSTER_NAME="<cluster-name>"Mit diesen Umgebungsvariablen können Sie AKS-Befehle ausführen, ohne deren Namen neu schreiben zu müssen.
Verwenden Sie command invoke zum Ausführen eines einzelnen Befehls.
Führen Sie einen einzelnen Befehl auf Ihrem Cluster mithilfe des
az aks command invokeBefehls und des--commandParameters aus, um den auszuführenden Befehl anzugeben. Das folgende Beispiel ermittelt die Pods imkube-system-Namespace.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl get pods -n kube-system"
Verwenden Sie command invoke zum Ausführen mehrerer Befehle.
Führen Sie mehrere Befehle auf Ihrem Cluster mithilfe des
az aks command invokeBefehls und des--commandParameters aus, um die auszuführenden Befehle anzugeben. Im folgenden Beispiel wird das Bitnami Helm-Chart-Repository hinzugefügt, das Repository aktualisiert und dasnginxChart installiert.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"
Verwenden Sie command invoke, um Befehle mit einer angefügten Datei auszuführen.
Wenn Sie einen Befehl mit einer angefügten Datei ausführen möchten, muss die Datei vorhanden sein und in Ihrem aktuellen Arbeitsverzeichnis zugänglich sein. Im folgenden Beispiel erstellen wir eine minimale Bereitstellungsdatei zur Demonstration.
Erstellen Sie eine Kubernetes-Manifestdatei mit dem Namen
deployment.yaml. Die folgende Beispielbereitstellungsdatei stellt einennginxPod bereit.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 EOFWenden Sie die Bereitstellungsdatei auf Ihren Cluster an, indem Sie den Befehl mit dem Parameter
az aks command invoke--fileverwenden, um die Datei zu verknüpfen. Im folgenden Beispiel wird diedeployment.yamlDatei auf dendefaultNamespace angewendet.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl apply -f deployment.yaml -n default" \ --file deployment.yaml
Wird command invoke verwendet, um Befehle mit allen Dateien im aktuellen Verzeichnis auszuführen
Hinweis
Verwenden Sie nur kleine, erforderliche Dateien, um eine Überschreitung der Systemgrößenbeschränkungen zu vermeiden.
Im folgenden Beispiel erstellen wir zwei minimale Bereitstellungsdateien für die Demonstration.
Erstellen Sie zwei Kubernetes-Manifestdateien mit dem Namen
deployment.yamlundconfigmap.yaml. Die folgenden Beispielbereitstellungsdateien stellen einennginxPod bereit und erstellen eine ConfigMap mit einer Willkommensnachricht.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" EOFWenden Sie die Bereitstellungsdateien auf Ihren Cluster an, indem Sie den Befehl
az aks command invokemit dem Parameter--fileverwenden, um die Datei anzuhängen. Im folgenden Beispiel werden diedeployment.yamlundconfigmap.yamlDateien auf dendefault-Namensraum angewendet.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
Verwenden Run command in einem privaten AKS-Cluster im Azure-Portal
Sie können die folgenden kubectl Befehle mit dem Run command Feature verwenden:
kubectl get nodeskubectl get deploymentskubectl get podskubectl describe nodeskubectl describe pod <pod-name>kubectl describe deployment <deployment-name>kubectl apply -f <file-name>
Verwenden Sie Run command zum Ausführen eines einzelnen Befehls.
- Navigieren Sie im Azure-Portal zu Ihrem privaten Cluster.
- Wählen Sie im Dienstmenü unter Kubernetes-Ressourcenden Befehl "Ausführen" aus.
- Geben Sie den Befehl ein, den Sie ausführen möchten, und wählen Sie Ausführen aus.
Verwenden von Run command zum Ausführen von Befehlen mit angefügten Dateien
Navigieren Sie im Azure-Portal zu Ihrem privaten Cluster.
Wählen Sie im Dienstmenü unter Kubernetes-Ressourcenden Befehl "Ausführen" aus.
Wählen Sie Dateien anfügen>Nach Dateien suchen aus.
Wählen Sie die Datei oder Dateien aus, die Sie anfügen möchten, und wählen Sie dann "Anfügen" aus.
Geben Sie den Befehl ein, den Sie ausführen möchten, und wählen Sie Ausführen aus.
Deaktivieren von Run command
Sie können die Run command Funktion deaktivieren, indem Sie .properties.apiServerAccessProfile.disableRunCommand auf true setzen.
Probleme mit command invoke beheben
Weitere Informationen zu den häufigsten Problemen mit az aks command invoke und Schritte zu ihrer Behebung finden Sie unter Beheben von az aks command invoke-Fehlern.
Verwandte Inhalte
In diesem Artikel haben Sie erfahren, wie Sie auf einen privaten Cluster zugreifen und Befehle für diesen Cluster ausführen. Weitere Informationen zu AKS-Clustern finden Sie in den folgenden Artikeln: