Conectar o RDP ao nós de cluster do Serviço de Kubernetes do Azure (AKS) para manutenção ou solução de problemas
Durante todo o ciclo de vida do seu cluster do Serviço de Kubernetes do Azure (AKS), talvez seja necessário acessar um nó AKS do Windows Server. Esse acesso pode ser para manutenção, coleção de logs ou outras operações de solução de problemas. Você pode acessar o nós de cluster do Serviço de Kubernetes (AKS) do Windows Server usando o RDP. Para fins de segurança, os nós do AKS não são expostos à Internet.
Como alternativa, se você quiser o SSH para seus nós de AKS do Windows Server, você precisa de acesso ao mesmo par de chaves usado durante a criação do cluster. Siga as etapas em Executar SSH nos nós de cluster do AKS (Serviço de Kubernetes do Azure).
Este artigo revela como criar uma conexão RDP com um nó AKS usando seus endereços IP privados.
Antes de começar
Este artigo pressupõe que você já tenha um cluster AKS existente com um nó compatível com Windows Server. Se você precisar de um cluster AKS, consulte o artigo sobre como criar um cluster AKS com um contêiner do Windows usando o CLI do Azure. Você precisa do nome de usuário e senha do administrador do Windows do nó no Windows Server que você deseja solucionar problemas. Você também precisa de um computador cliente de RDP, como área de trabalho remota da Microsoft.
Se você precisar redefinir a senha, use az aks update
para alterar a senha.
az aks update --resource-group myResourceGroup --name myAKSCluster --windows-admin-password $WINDOWS_ADMIN_PASSWORD
Se você precisar redefinir o nome de usuário e a senha, confira Redefinir Serviços da Área de Trabalho Remota ou senha do administrador em uma VM do Windows.
A versão 2.0.61 ou posterior do CLI do Azure também precisa estar instalada e configurada. Execute az --version
para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.
Implantar uma máquina virtual na mesma sub-rede conforme seu cluster
Os nós do cluster do AKS do Windows Server não têm endereços IP acessíveis externamente. Para fazer uma conexão RDP, você pode implantar uma máquina virtual por meio de um endereço IP acessível abertamente para a mesma sub-rede que os nós do Windows Server.
O exemplo a seguir inicia uma identidade da máquina virtual chamadamyVMnogrupo de recursosmyResourceGroup.
Você precisa obter a ID da sub-rede usada pelo seu pool de nós do Windows Server e consultar por:
- O grupo de recursos do nó de cluster
- A rede virtual
- O nome da sub-rede
- A ID da sub-rede
CLUSTER_RG=$(az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv)
VNET_NAME=$(az network vnet list --resource-group $CLUSTER_RG --query [0].name -o tsv)
SUBNET_NAME=$(az network vnet subnet list --resource-group $CLUSTER_RG --vnet-name $VNET_NAME --query [0].name -o tsv)
SUBNET_ID=$(az network vnet subnet show --resource-group $CLUSTER_RG --vnet-name $VNET_NAME --name $SUBNET_NAME --query id -o tsv)
Agora que você tem o ID de sub-rede, execute o seguinte comando na mesma janela Azure Cloud Shell para criar a máquina virtual:
PUBLIC_IP_ADDRESS="myVMPublicIP"
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image win2019datacenter \
--admin-username azureuser \
--admin-password {admin-password} \
--subnet $SUBNET_ID \
--nic-delete-option delete \
--os-disk-delete-option delete \
--nsg "" \
--public-ip-address $PUBLIC_IP_ADDRESS \
--query publicIpAddress -o tsv
O exemplo de saída seguinte mostra que a máquina virtual foi criada com êxito e exibe o endereço IP aberto da máquina virtual.
13.62.204.18
Registre o endereço IP público da máquina virtual. Você usará este endereço numa etapa mais tarde.
Permitir o acesso à máquina virtual
As sub-redes do pool de nós AKS são protegidas pelos NSGs (grupos de segurança de rede) por padrão. Para ter o acesso à máquina virtual, você terá que habilitar o acesso no NSG.
Observação
Os NSGs são controlados pelo serviço de AKS. Qualquer alteração feita no grupo de segurança de rede será substituída a qualquer momento pelo painel de controle.
Primeiro, obtenha o grupo de recursos e o nome do grupo de segurança de rede do NSG para adicionar a regra:
CLUSTER_RG=$(az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv)
NSG_NAME=$(az network nsg list --resource-group $CLUSTER_RG --query [].name -o tsv)
Em seguida, crie a regra do NSG:
az network nsg rule create \
--name tempRDPAccess \
--resource-group $CLUSTER_RG \
--nsg-name $NSG_NAME \
--priority 100 \
--destination-port-range 3389 \
--protocol Tcp \
--description "Temporary RDP access to Windows nodes"
Obtenha o endereço do nó
Para gerenciar um cluster do Kubernetes, use kubectl, o cliente de linha de comando do Kubernetes. Se você usar o Azure Cloud Shell, o kubectl
já estará instalado. Para instalar o kubectl
localmente, use o comando az aks install-cli:
az aks install-cli
Para configurar o kubectl
para se conectar ao cluster do Kubernetes, use o comando az aks get-credentials. Este comando baixa as credenciais e configura a CLI do Kubernetes para usá-las.
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Registre o endereço IP interno dos nós do Windows Server usando o comando kubectl Get:
kubectl get nodes -o wide
O exemplo de saída a seguir mostra os endereços IP internos de todos os nós no cluster, incluindo os nós do Windows Server.
$ kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
aks-nodepool1-42485177-vmss000000 Ready agent 18h v1.12.7 10.240.0.4 <none> Ubuntu 16.04.6 LTS 4.15.0-1040-azure docker://3.0.4
aksnpwin000000 Ready agent 13h v1.12.7 10.240.0.67 <none> Windows Server Datacenter 10.0.17763.437
Inscreve o endereço IP interno do nó do Windows Server que você deseja solucionar problemas. Você usará este endereço numa etapa mais tarde.
Conectar-se à máquina virtual e ao nó
Conecte-se ao endereço IP público da máquina virtual que você criou anteriormente usando um cliente RDP, como a Área de Trabalho Remota da Microsoft.
Depois de se conectar à sua máquina virtual, conecte-se ao endereço IP interno do nó do Windows Server que você deseja solucionar problemas usando um cliente RDP de dentro da sua máquina virtual.
Agora você está conectado ao nó do Windows Server.
Você pode executar quaisquer comandos de solução de problemas na janela cmd. Como os nós do Windows Server usam o Windows Server Core, não há uma GUI (interface gráfica do usuário) completa ou outras ferramentas de GUI no tempo em que você se conecta a um nó do Windows Server através do RDP.
Remova o acesso RDP
Quando terminar, saia da conexão RDP de acordo como o nó do Windows Server e saia da sessão RDP segundo à máquina virtual. Após sair de ambas sessões RDP, exclua a máquina virtual com o comandoExcluir AZ da VM:
# Delete the virtual machine
az vm delete \
--resource-group myResourceGroup \
--name myVM
Exclua o IP público associado à máquina virtual:
az network public-ip delete \
--resource-group myResourceGroup \
--name $PUBLIC_IP_ADDRESS
Exclua a regra NSG:
CLUSTER_RG=$(az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv)
NSG_NAME=$(az network nsg list --resource-group $CLUSTER_RG --query [].name -o tsv)
az network nsg rule delete \
--resource-group $CLUSTER_RG \
--nsg-name $NSG_NAME \
--name tempRDPAccess
Conectar-se ao Azure Bastion
Como alternativa, você pode usar o Azure Bastion para se conectar ao nó do Windows Server.
Implantar o Azure Bastion
Para implantar o Azure Bastion, você precisará encontrar a rede virtual à qual o cluster do AKS está conectado.
- No portal do Azure, acesse Redes virtuais. Selecione a rede virtual à qual o cluster do AKS está conectado.
- Em Configurações, selecione Bastion e depois Implantar Bastion. Aguarde até que o processo seja concluído para ir para a próxima etapa.
Conectar-se aos nós do Windows Server usando o Azure Bastion
Acesse o grupo de recursos do nó do cluster do AKS. Execute o comando abaixo no Azure Cloud Shell, para obter o nome do grupo de recursos do nó:
az aks show --name myAKSCluster --resource-group myResourceGroup --query 'nodeResourceGroup' -o tsv
- Selecione Visão geral e o conjunto de dimensionamento de máquinas virtuais do pool de nós do Windows.
- Em Configurações, selecione Instâncias. Selecione um nó do Windows Server ao qual você gostaria de se conectar.
- Em Suporte + solução de problemas, selecione Bastion.
- Insira as credenciais configuradas quando o cluster do AKS foi criado. Selecione Conectar.
Você pode executar quaisquer comandos de solução de problemas na janela cmd. Como os nós do Windows Server usam o Windows Server Core, não há uma GUI (interface gráfica do usuário) completa ou outras ferramentas de GUI no tempo em que você se conecta a um nó do Windows Server através do RDP.
Observação
Se você fechar a janela do terminal, pressione CTRL + ALT + End, selecione Gerenciador de Tarefas, Mais detalhes, Arquivo e Executar nova tarefa, e insira cmd.exe para abrir outro terminal. Você também pode fazer logoff e se conectar novamente ao Bastion.
Remover o acesso ao Bastion
Quando terminar, saia da sessão do Bastion e remova o recurso Bastion.
- No portal do Azure, acesse Bastion e selecione o recurso Bastion que você criou.
- Na parte superior da página, selecione Excluir. Aguarde até que o processo seja concluído, para prosseguir para a próxima etapa.
- No portal do Azure, acesse Redes virtuais. Selecione a rede virtual à qual o cluster do AKS está conectado.
- Em Configurações, selecione Sub-rede e exclua a sub-rede AzureBastionSubnet criada para o recurso Bastion.
Próximas etapas
Se precisar de mais dados de solução de problemas, poderá exibir os logs do nó primário do Kubernetes ou o Azure Monitor.
Azure Kubernetes Service