Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Když přistupujete k privátnímu clusteru Azure Kubernetes Service (AKS), musíte se k němu připojit z virtuální sítě clusteru, partnerské sítě nebo nakonfigurovaného privátního koncového bodu. Tyto přístupy vyžadují další konfiguraci, například nastavení sítě VPN nebo ExpressRoute.
Pomocí Azure CLI můžete přistupovat command invoke k privátním clusterům bez nutnosti konfigurace sítě VPN nebo ExpressRoute.
command invoke umožňuje vzdáleně volat příkazy, například kubectl a helm, ve vašem privátním clusteru prostřednictvím rozhraní Azure API bez přímého připojení ke clusteru. Akce RBAC Microsoft.ContainerService/managedClusters/runcommand/action a Microsoft.ContainerService/managedClusters/commandResults/read řídí oprávnění pro použití command invoke.
Pomocí webu Azure Portal můžete pomocí Run command funkce spouštět příkazy v privátním clusteru. Tato Run command funkce používá stejné command invoke funkce ke spouštění příkazů ve vašem clusteru. Pod vytvořený pomocí Run command poskytuje kubectl a helm pro provoz vašeho clusteru.
jq
xargs, grepa awk jsou k dispozici pro podporu Bash.
Návod
Ke spouštění kubectl příkazů na webu Azure Portal můžete použít Azure Copilot. Další informace najdete v tématu Efektivní práce s clustery AKS pomocí Azure Copilotu.
Požadavky
Požadavky na systém a oprávnění
| Typ požadavku | Specification | Postup ověření |
|---|---|---|
| Verze Azure CLI | 2.24.0 nebo novější | Pomocí příkazu az --version zkontrolujte svou verzi. |
| Privátní cluster AKS | Musí už existovat | Pokud nemáte existující privátní cluster, postupujte podle pokynů v tématu Vytvoření privátního clusteru AKS. |
| Akce RBAC |
Microsoft.ContainerService/managedClusters/runcommand/action a Microsoft.ContainerService/managedClusters/commandResults/read |
Pomocí stránky Řízení přístupu na webu Azure Portal (IAM) nebo az role assignment list příkazu Azure CLI zkontrolujte. |
Specifikace prostředků příkazu 'run' podu
| Typ zdroje | Hodnota | Dopad |
|---|---|---|
| Požadavky na procesor | 200 m | Minimální rezervace procesoru pro velitelský modul |
| Požadavky na paměť | 500 MiB | Minimální paměť vyhrazená pro řídicí modul |
| Omezení procesoru | 500 m | Maximální výpočetní výkon procesoru dostupný pro řídicí pod |
| Limity paměti | 1Gi | Maximální paměť dostupná pro příkazový modul |
| Vypršení časového limitu rozhraní API Azure Resource Manager (ARM) | 60 sekund | Maximální čas plánování podů |
| Omezení velikosti výstupu | 512kB | Maximální velikost výstupu příkazu |
Omezení a úvahy
Rozsah návrhu
- Ne pro programový přístup: Pro automatizovaná volání rozhraní API použijte Bastion, VPN nebo ExpressRoute.
- Závislost plánování podů: Vyžaduje dostatečné prostředky clusteru (viz specifikace prostředků).
- Omezení výstupu: pouze exitCode a text , žádné podrobnosti na úrovni rozhraní API.
- Platí omezení sítě: Na základě omezení síťového provozu v rámci clusteru a jeho zabezpečení.
Potenciální body selhání
- Selhání plánování podů, pokud jsou uzly omezené zdroji.
- Vypršení časového limitu rozhraní API ARM (60 sekund), pokud pod nejde rychle naplánovat.
- Zkrácení výstupu, pokud odpověď překročí limit 512 kB.
Použití command invoke v privátním clusteru AKS s Azure CLI
Nastavte proměnné prostředí pro skupinu prostředků a název clusteru pro použití v následujících příkazech.
export AKS_RESOURCE_GROUP="<resource-group-name>" export AKS_CLUSTER_NAME="<cluster-name>"Tyto proměnné prostředí umožňují spouštět příkazy AKS bez nutnosti přepisovat jejich názvy.
Slouží command invoke ke spuštění jednoho příkazu.
Spusťte jediný příkaz na svém clusteru pomocí příkazu
az aks command invokea parametru--commandpro určení příkazu, který se má spustit. Následující příklad zobrazí pody v oboru názvůkube-system.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl get pods -n kube-system"
Slouží command invoke ke spouštění více příkazů.
Spuštěním několika příkazů v clusteru pomocí
az aks command invokepříkazu a parametru--commandurčete příkazy, které se mají spustit. Následující příklad přidá úložiště chartů Bitnami Helm, aktualizuje úložiště a nainstalujenginxchart.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"
Slouží command invoke ke spouštění příkazů s připojeným souborem.
Pokud chcete spustit příkaz s připojeným souborem, musí soubor existovat a být přístupný v aktuálním pracovním adresáři. V následujícím příkladu vytvoříme minimální soubor nasazení pro ukázku.
Vytvořte soubor manifestu Kubernetes s názvem
deployment.yaml. Následující příklad souboru pro nasazení spustínginxpod.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 EOFAplikujte soubor nasazení na váš cluster pomocí příkazu
az aks command invokes parametrem--filepro připojení souboru. Následující příklad aplikuje soubordeployment.yamldo prostoru názvůdefault.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl apply -f deployment.yaml -n default" \ --file deployment.yaml
Slouží command invoke ke spouštění příkazů se všemi soubory v aktuálním adresáři.
Poznámka:
Používejte jenom malé, nezbytné soubory, abyste se vyhnuli překročení limitů velikosti systému.
V následujícím příkladu vytvoříme dva minimální soubory nasazení pro ukázku.
Vytvořte dva soubory manifestu Kubernetes s názvem
deployment.yamlaconfigmap.yaml. Následující příklad souborů nasazení nasadínginxpod a vytvoří Objekt ConfigMap s uvítací zprávou.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" EOFProveďte aplikaci souborů nasazení na váš cluster použitím příkazu
az aks command invokes parametrem--filepro připojení souboru. Následující příklad aplikuje souborydeployment.yamlaconfigmap.yamldodefaultoboru názvů.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
Použití Run command v privátním clusteru AKS na webu Azure Portal
Pomocí funkce Run command můžete použít následující příkazy kubectl:
kubectl get nodeskubectl get deploymentskubectl get podskubectl describe nodeskubectl describe pod <pod-name>kubectl describe deployment <deployment-name>kubectl apply -f <file-name>
Slouží Run command ke spuštění jednoho příkazu.
- Na webu Azure Portal přejděte do privátního clusteru.
- V nabídce služby v části Prostředky Kubernetes vyberte Příkaz Spustit.
- Zadejte příkaz, který chcete spustit, a vyberte Spustit.
Slouží Run command ke spouštění příkazů s připojenými soubory.
Na webu Azure Portal přejděte do privátního clusteru.
V nabídce služby v části Prostředky Kubernetes vyberte Příkaz Spustit.
Vyberte Připojit soubory>, vyhledejte soubory.
Vyberte soubor nebo soubory, které chcete připojit, a pak vyberte Připojit.
Zadejte příkaz, který chcete spustit, a vyberte Spustit.
Vypnout Run command
Tuto funkci můžete zakázat Run command nastavením .properties.apiServerAccessProfile.disableRunCommand na true.
Odstraňování problémů command invoke
Informace o nejběžnějších problémech s az aks command invoke a jejich řešení najdete v tématu Řešení az aks command invoke chyb.
Související obsah
V tomto článku jste se dozvěděli, jak získat přístup k privátnímu clusteru a spouštět příkazy v tomto clusteru. Další informace o clusterech AKS najdete v následujících článcích: