Acessar um cluster privado do Serviço de Kubernetes do Azure (AKS) usando o recurso de invocação de comando ou Executar comando
Ao acessar um cluster do AKS privado, você deve se conectar ao cluster pela rede virtual do cluster, rede emparelhada ou um ponto de extremidade privado configurado. Essas abordagens exigem a configuração de uma VPN, do ExpressRoute, a implantação de um jumpbox dentro da rede virtual de cluster ou a criação de um ponto de extremidade privado dentro de outra rede virtual.
Com a CLI do Azure, você pode usar command invoke
para acessar clusters privados sem a necessidade de configurar uma VPN ou ExpressRoute. O command invoke
permite que você invoque comandos remotamente, como kubectl
e helm
, no seu cluster privado por meio da API do Azure sem se conectar diretamente ao cluster. As ações Microsoft.ContainerService/managedClusters/runcommand/action
e Microsoft.ContainerService/managedclusters/commandResults/read
controlam as permissões de uso de command invoke
.
Com o portal do Azure, você pode usar o recurso Run command
para executar comandos no cluster privado. O recurso Run command
usa a mesma funcionalidade command invoke
para executar comandos no cluster.
Antes de começar
Antes de começar, confirme se você tem os seguintes recursos implantados:
- Um cluster privado existente. Se você não tiver um, consulte Criar um cluster do AKS privado.
- A CLI do Azure versão 2.24.0 ou posterior. Execute
az --version
para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure. - Acesso às funções
Microsoft.ContainerService/managedClusters/runcommand/action
eMicrosoft.ContainerService/managedclusters/commandResults/read
no cluster.
Limitações
O pod criado pelo comando run
fornece helm
e a versão mais recente compatível do kubectl
para seu cluster com kustomize
.
command invoke
executa os comandos do cluster, portanto, todos os comandos executados dessa maneira estão sujeitos às restrições de rede configuradas e a quaisquer outras restrições configuradas. Verifique se há nós e recursos suficientes no seu cluster para agendar esse pod de comando.
Observação
A saída para command invoke
é limitada a 512 kB de tamanho.
Executar comandos no cluster do AKS
Usar command invoke
para executar um único comando
Execute um comando no seu cluster usando o comando
az aks command invoke --command
. O exemplo de comando a seguir executa o comandokubectl get pods -n kube-system
no cluster myPrivateCluster no myResourceGroup.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl get pods -n kube-system"
Usar command invoke
para executar vários comandos
Execute vários comandos no seu cluster usando o comando
az aks command invoke --command
. O exemplo de comando a seguir executa três comandoshelm
no cluster myPrivateCluster no 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"
Use command invoke
para executar comandos com um arquivo ou diretório anexado
Execute comandos com um arquivo ou diretório anexado usando o comando
az aks command invoke --command
com o parâmetro--file
. O exemplo de comando a seguir executakubectl apply -f deployment.yaml -n default
no cluster myPrivateCluster no myResourceGroup. O arquivodeployment.yaml
está anexado a partir do diretório atual no computador de desenvolvimento em queaz aks command invoke
foi executado.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl apply -f deployment.yaml -n default" \ --file deployment.yaml
Use command invoke
para executar os comandos com todos os arquivos do diretório atual anexados
Execute comandos com todos os arquivos no diretório atual anexados usando o comando
az aks command invoke --command
com o parâmetro--file
. O exemplo de comando a seguir executakubectl apply -f deployment.yaml configmap.yaml -n default
no cluster myPrivateCluster no myResourceGroup. Os arquivosdeployment.yaml
econfigmap.yaml
fazem parte do diretório atual no computador de desenvolvimento em que oaz aks command invoke
foi executado.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl apply -f deployment.yaml configmap.yaml -n default" \ --file .
Solução de problemas
Para obter informações sobre os problemas mais comuns com az aks command invoke
e como corrigi-los, confira Resolver az aks command invoke
falhas.
Próximas etapas
Neste artigo, você aprendeu a acessar um cluster privado e executar comandos nesse cluster. Para obter mais informações sobre clusters do AKS, consulte os seguintes artigos:
Azure Kubernetes Service