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 -g myResourceGroup -n 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 -g myResourceGroup -n myAKSCluster --query nodeResourceGroup -o tsv)
VNET_NAME=$(az network vnet list -g $CLUSTER_RG --query [0].name -o tsv)
SUBNET_NAME=$(az network vnet subnet list -g $CLUSTER_RG --vnet-name $VNET_NAME --query [0].name -o tsv)
SUBNET_ID=$(az network vnet subnet show -g $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 -g myResourceGroup -n myAKSCluster --query nodeResourceGroup -o tsv)
NSG_NAME=$(az network nsg list -g $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.

Image of connecting to the virtual machine using an RDP client

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.

Image of connecting to the Windows Server node using an RDP client

Agora você está conectado ao nó do Windows Server.

Image of cmd window in the Windows Server node

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 -g myResourceGroup -n myAKSCluster --query nodeResourceGroup -o tsv)
NSG_NAME=$(az network nsg list -g $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.

  1. No portal do Azure, acesse Redes virtuais. Selecione a rede virtual à qual o cluster do AKS está conectado.
  2. 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 -n myAKSCluster -g myResourceGroup --query 'nodeResourceGroup' -o tsv
  1. Selecione Visão geral e o conjunto de dimensionamento de máquinas virtuais do pool de nós do Windows.
  2. Em Configurações, selecione Instâncias. Selecione um nó do Windows Server ao qual você gostaria de se conectar.
  3. Em Suporte + solução de problemas, selecione Bastion.
  4. 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.

  1. No portal do Azure, acesse Bastion e selecione o recurso Bastion que você criou.
  2. Na parte superior da página, selecione Excluir. Aguarde até que o processo seja concluído, para prosseguir para a próxima etapa.
  3. No portal do Azure, acesse Redes virtuais. Selecione a rede virtual à qual o cluster do AKS está conectado.
  4. 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.