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 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í konfiguraci sítě VPN, Express Route, nasazení jumpboxu ve virtuální síti clusteru nebo vytvoření privátního koncového bodu uvnitř jiné virtuální sítě.
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 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.
Návod
Ke spouštění kubectl
příkazů na webu Azure Portal můžete použít Microsoft Copilot v Azure. Další informace najdete v tématu Efektivní práce s clustery AKS pomocí Microsoft Copilotu v Azure.
Pod vytvořený nástrojem Run command
poskytuje kubectl
a helm
pro provoz vašeho clusteru.
jq
xargs
, grep
a awk
jsou k dispozici pro podporu Bash.
Než začnete
Než začnete, ujistěte se, že máte následující prostředky a oprávnění:
- Existující privátní cluster. Pokud ho nemáte, přečtěte si téma Vytvoření privátního clusteru AKS.
- Azure CLI verze 2.24.0 nebo novější. Verzi zjistíte spuštěním příkazu
az --version
. Pokud potřebujete instalovat nebo upgradovat, podívejte se na Install Azure CLI. - Přístup k rolím
Microsoft.ContainerService/managedClusters/runcommand/action
aMicrosoft.ContainerService/managedclusters/commandResults/read
rolím v clusteru
Omezení
Tato funkce je navržená tak, aby zjednodušila přístup ke clusteru a není určená pro programový přístup. Pro programová volání do clusteru byste měli využít přímý přístup k rozhraní API přes Bastion, VPN nebo ExpressRoute.
Pokud máte program, který volá Kubernetes pomocí Run command
, platí následující nevýhody:
- Získáte pouze ukončovací kód a textový výstup a ztratíte podrobnosti na úrovni rozhraní API.
- Jeden další skok představuje další body selhání.
Pod vytvořený pomocí Run command
má 200m CPU
a 500Mi memory
žádosti a 500m CPU
a 1Gi memory
omezení. V případech, kdy je celý uzel plný nebo přetížený, nemusí být možné naplánovat pod během časového limitu rozhraní ARM API 60 sekund. To znamená, že Run command
vyvolání selže.
command invoke
spustí příkazy z vašeho clusteru, takže všechny příkazy spouštěné tímto způsobem podléhají nakonfigurovaným omezením sítě a jakýmkoli jiným nakonfigurovaným omezením. Ujistěte se, že v clusteru je dostatek uzlů a prostředků k naplánování tohoto podu příkazů.
Poznámka:
Výstup pro command invoke
je omezen na velikost 512 kB.
Spouštění příkazů v clusteru AKS
Níže jsou uvedeny příklady použití az aks command invoke
ke spouštění příkazů v privátním clusteru AKS. Tyto příklady předpokládají, že máte existující skupinu prostředků a cluster AKS.
Slouží command invoke
ke spuštění jednoho příkazu.
Pomocí příkazu az aks command invoke --command
můžete spustit příkaz na svém clusteru. Následující ukázkový příkaz spustí kubectl get pods -n kube-system
příkaz v clusteru myPrivateCluster v myResourceGroup.
Nejprve určete proměnné prostředí pro skupinu prostředků a název clusteru pro použití v dalších příkazech.
export AKS_RESOURCE_GROUP="myResourceGroup"
export AKS_CLUSTER_NAME="myPrivateCluster"
Výše uvedené proměnné prostředí vám umožní spouštět příkazy AKS v dalších částech bez nutnosti přepisovat jejich názvy.
Spuštění jednoho příkazu kubectl v clusteru AKS:
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ů.
Můžete také spustit více příkazů. Následující příklad spustí v clusteru tři helm
příkazy v posloupnosti.
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.
Při použití parametru --file
s az aks command invoke
musí soubor existovat a být přístupný v aktuálním pracovním adresáři. Níže vytvoříme minimální soubor nasazení pro ukázku.
Pokud chcete spustit příkaz s připojeným souborem, nejprve vytvořte soubor manifestu Kubernetes s názvem deployment.yaml
. Následující příklad vytvoří malé nasazení nginx a použije ho s command invoke
:
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
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 připojeném aktuálním adresáři.
Používejte jenom malé, nezbytné soubory, abyste se vyhnuli překročení limitů velikosti systému. Níže jsou vytvořeny dva minimální soubory YAML před jejich připojením.
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"
EOF
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
Vypnout Run command
Tuto funkci můžete zakázat Run command
nastavením .properties.apiServerAccessProfile.disableRunCommand
na true
.
Řešení problémů
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.
Další kroky
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:
Azure Kubernetes Service