Conectar-se com RDP para nós do Windows Server de cluster do Serviço Kubernetes do Azure (AKS) para manutenção ou solução de problemas
Durante todo o ciclo de vida do cluster do Serviço Kubernetes do Azure (AKS), talvez seja necessário acessar um nó do AKS Windows Server. Esse acesso pode ser para manutenção, coleta de logs ou outras operações de solução de problemas. Você pode acessar os nós do AKS Windows Server usando RDP. Por motivos de segurança, os nós AKS não estão expostos à internet.
Como alternativa, se você quiser SSH para seus nós do AKS Windows Server, precisará acessar o mesmo par de chaves que foi usado durante a criação do cluster. Siga as etapas em SSH nos nós de cluster do Serviço Kubernetes do Azure (AKS).
Este artigo mostra 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ê tenha um cluster AKS existente com um nó do 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 a CLI do Azure. Você precisa do nome de usuário e da senha do administrador do Windows para o nó do Windows Server que deseja solucionar. Você também precisa de um cliente RDP, como a Á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, consulte Redefinir os Serviços de Área de Trabalho Remota ou sua senha de administrador em uma VM do Windows.
Você também precisa da CLI do Azure versão 2.0.61 ou posterior instalada e configurada. Executar az --version
para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).
Implantar uma máquina virtual na mesma sub-rede que o cluster
Os nós do Windows Server do cluster AKS não têm endereços IP acessíveis externamente. Para fazer uma conexão RDP, você pode implantar uma máquina virtual com um endereço IP acessível publicamente na mesma sub-rede que os nós do Windows Server.
O exemplo a seguir cria uma máquina virtual chamada myVM no grupo de recursos myResourceGroup .
Você precisa obter a ID de sub-rede usada pelo pool de nós do Windows Server e consultar para:
- O grupo de recursos do nó do cluster
- A rede virtual
- O nome da sub-rede
- O 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ê já tem o SUBNET_ID, execute o seguinte comando na mesma janela do Azure Cloud Shell para criar a VM:
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
A saída de exemplo a seguir mostra que a VM foi criada com êxito e exibe o endereço IP público da máquina virtual.
13.62.204.18
Registre o endereço IP público da máquina virtual. Você usará esse endereço em uma etapa posterior.
Permitir acesso à máquina virtual
As sub-redes do pool de nós AKS são protegidas com NSGs (Grupos de Segurança de Rede) por padrão. Para obter acesso à máquina virtual, você terá que habilitar o acesso no NSG.
Nota
Os NSGs são controlados pelo serviço AKS. Qualquer alteração que você fizer no NSG será substituída a qualquer momento pelo plano de controle.
Primeiro, obtenha o grupo de recursos e o nome do NSG para adicionar a regra a:
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 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"
Obter o endereço do nó
Para gerenciar um cluster Kubernetes, use kubectl, o cliente de linha de comando do Kubernetes. Se você usa o Azure Cloud Shell, kubectl
já está instalado. Para instalar kubectl
localmente, use o comando az aks install-cli :
az aks install-cli
Para configurar kubectl
para se ligar ao cluster do Kubernetes, utilize o comando az aks get-credentials. Este comando baixa credenciais e configura a CLI do Kubernetes para usá-las.
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Liste o endereço IP interno dos nós do Windows Server usando o comando kubectl get :
kubectl get nodes -o wide
A saída de exemplo 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
Registre o endereço IP interno do nó do Windows Server que você deseja solucionar problemas. Você usará esse endereço em uma etapa posterior.
Conectar-se à máquina virtual e ao nó
Conecte-se ao endereço IP público da máquina virtual criada 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 usando um cliente RDP de dentro de sua máquina virtual.
Agora você está conectado ao nó do Windows Server.
Agora você pode executar qualquer comando 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 completa ou outras ferramentas de GUI quando você se conecta a um nó do Windows Server pelo RDP.
Remover acesso RDP
Quando terminar, saia da conexão RDP para o nó do Windows Server e saia da sessão RDP para a máquina virtual. Depois de sair de ambas as sessões RDP, exclua a máquina virtual com o comando az vm delete :
# 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
Conecte-se com o Azure Bastion
Como alternativa, você pode usar o Azure Bastion para se conectar ao nó do Windows Server.
Implementar o Azure Bastion
Para implantar o Azure Bastion, você precisará encontrar a rede virtual à qual seu cluster AKS está conectado.
- No portal do Azure, vá para Redes virtuais. Selecione a rede virtual à qual seu cluster AKS está conectado.
- Em Configurações, selecione Bastião e, em seguida, selecione Implantar Bastion. Aguarde até que o processo esteja concluído antes de passar para a próxima etapa.
Conectar-se aos nós do Windows Server usando o Azure Bastion
Vá para o grupo de recursos de nó do cluster AKS. Execute o comando abaixo no Azure Cloud Shell para obter o nome do seu grupo de recursos de nó:
az aks show --name myAKSCluster --resource-group myResourceGroup --query 'nodeResourceGroup' -o tsv
- Selecione Visão geral e selecione o conjunto de dimensionamento de máquina virtual do pool de nós do Windows.
- Em Definições, selecione Instâncias. Selecione um nó de servidor Windows ao qual você gostaria de se conectar.
- Em Suporte + resolução de problemas, selecione Bastion.
- Insira as credenciais que você configurou quando o cluster AKS foi criado. Selecione Ligar.
Agora você pode executar qualquer comando 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 completa ou outras ferramentas de GUI quando você se conecta a um nó do Windows Server pelo RDP.
Nota
Se fechar a janela do terminal, prima CTRL + ALT + End, selecione Gestor de Tarefas, selecione Mais detalhes, selecione Ficheiro, selecione Executar nova tarefa e introduza cmd.exe para abrir outro terminal. Você também pode sair e se reconectar com Bastion.
Remover o acesso Bastion
Quando terminar, saia da sessão Bastion e remova o recurso Bastion.
- No portal do Azure, vá para Bastion e selecione o recurso Bastion que você criou.
- Na parte superior da página, selecione Eliminar. Aguarde até que o processo esteja concluído antes de prosseguir para a próxima etapa.
- No portal do Azure, vá para Redes virtuais. Selecione a rede virtual à qual seu cluster AKS está conectado.
- Em Configurações, selecione Sub-rede e exclua a sub-rede AzureBastionSubnet que foi criada para o recurso Bastion.
Próximos passos
Se precisar de mais dados de solução de problemas, você pode exibir os logs do nó primário do Kubernetes ou o Azure Monitor.
Azure Kubernetes Service