Conexión con RDP a los nodos de Windows Server de clúster de Azure Kubernetes Service (AKS) para el mantenimiento o la solución de problemas

Durante el ciclo de vida del clúster de Azure Kubernetes Service (AKS), es posible que necesite acceder a un nodo de Windows Server de AKS. Este acceso podría ser para mantenimiento, recopilación de registros u otras operaciones de solución de problemas. Puede acceder a los nodos de Windows Server de AKS mediante conexión RDP. Por motivos de seguridad, los nodos de AKS no están expuestos a Internet.

Como alternativa, si quiere conectarse mediante SSH a los nodos de Windows Server de AKS, necesita acceder al mismo par de claves que se usó durante la creación del clúster. Siga los pasos descritos en Conexión SSH con los nodos de un clúster de Azure Kubernetes Service (AKS)

En este artículo se muestra cómo crear una conexión RDP con un nodo de AKS mediante sus direcciones IP privadas.

Antes de empezar

En este artículo se presupone que ya tiene un clúster de AKS con un nodo de Windows Server. Si necesita un clúster de AKS, consulte el artículo sobre la creación de un clúster de AKS con un contenedor de Windows mediante la CLI de Azure. Necesitará el nombre de usuario de administrador de Windows y la contraseña para el nodo de Windows Server cuyos problemas quiera solucionar. También necesitará un cliente RDP, como Escritorio remoto de Microsoft.

Si necesita restablecer la contraseña, use az aks update para cambiarla.

az aks update -g myResourceGroup -n myAKSCluster --windows-admin-password $WINDOWS_ADMIN_PASSWORD

Si necesita restablecer el nombre de usuario y la contraseña, vea Restablecimiento de los Servicios de Escritorio remoto o su contraseña de administrador en una máquina virtual Windows.

También es preciso que esté instalada y configurada la versión 2.0.61 de la CLI de Azure u otra versión posterior. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

Implementación de una máquina virtual en la misma subred que el clúster

Los nodos de Windows Server del clúster de AKS no tienen direcciones IP accesibles externamente. Para realizar una conexión RDP, puede implementar una máquina virtual con una dirección IP accesible públicamente en la misma subred que los nodos de Windows Server.

En el siguiente ejemplo se crea una máquina virtual llamada myVM en el grupo de recursos myResourceGroup.

Tiene que obtener el id. de subred que usa el grupo de nodos de Windows Server y la consulta de:

  • El grupo de recursos de nodo del clúster
  • La red virtual
  • El nombre de la subred
  • El id. de subred
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)

Ahora que tiene el SUBNET_ID, ejecute el comando siguiente en la misma ventana de Azure Cloud Shell para crear la 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

La salida del siguiente ejemplo muestra que la máquina virtual se ha creado correctamente y muestra su dirección IP pública.

13.62.204.18

Registre la dirección IP pública de la máquina virtual, Usará esta dirección en un paso posterior.

Permitir el acceso a la máquina virtual

De forma predeterminada, las subredes de los grupos de nodos de AKS están protegidas con grupos de seguridad de red. Para obtener acceso a la máquina virtual, tendrá que habilitar el acceso en el grupo de seguridad de red.

Nota

Los grupos de seguridad de red se controlan mediante el servicio AKS. El plano de control sobrescribirá en cualquier momento los cambios que realice en el grupo de seguridad de red.

En primer lugar, obtenga el grupo de recursos y el nombre del grupo de seguridad de red al que va a agregar la regla:

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)

A continuación, cree la regla del grupo de seguridad de red:

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"

Obtención de la dirección del nodo

Para administrar un clúster de Kubernetes, usará kubectl, el cliente de línea de comandos de Kubernetes. Si usa Azure Cloud Shell, kubectl ya está instalado. Para instalar kubectl localmente, use el comando az aks install-cli:

az aks install-cli

Para configurar kubectl para conectarse a su clúster de Kubernetes, use el comando az aks get-credentials. Con este comando se descargan las credenciales y se configura la CLI de Kubernetes para usarlas.

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

Enumere la dirección IP interna de los nodos de Windows Server con el comando kubectl get:

kubectl get nodes -o wide

La salida del ejemplo siguiente muestra las direcciones IP internas de todos los nodos del clúster, incluidos los nodos con 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 la dirección IP interna del nodo de Windows Server cuyos problemas desee solucionar, Usará esta dirección en un paso posterior.

Conexión a la máquina virtual y al nodo

Conéctese a la dirección IP pública de la máquina virtual que creó antes mediante un cliente con conexión RDP, como Escritorio remoto de Microsoft.

Image of connecting to the virtual machine using an RDP client

Una vez conectado a la máquina virtual, conéctese con la dirección IP interna del nodo de Windows Server cuyos problemas quiera solucionar con un cliente con conexión RDP desde la máquina virtual.

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

Ahora está conectado a su nodo de Windows Server.

Image of cmd window in the Windows Server node

Ahora puede ejecutar los comandos de la solución de problemas en la ventana de cmd. Dado que los nodos de Windows Server usan Windows Server Core, no hay una interfaz gráfica de usuario completa ni otras herramientas de la interfaz gráfica de usuario cuando se conecta a un nodo de Windows Server mediante una conexión RDP.

Eliminación de la conexión RDP

Cuando haya terminado, cierre la conexión RDP con el nodo de Windows Server y salga de la sesión de RDP para ir a la máquina virtual. Después de salir ambas sesiones de RDP, elimine la máquina virtual con el comando az vm delete:

# Delete the virtual machine
az vm delete \
 --resource-group myResourceGroup \
 --name myVM

Elimine la IP pública asociada a la máquina virtual:

az network public-ip delete \
 --resource-group myResourceGroup \
 --name $PUBLIC_IP_ADDRESS

Elimine la regla del grupo de seguridad de red:

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

Conexión con Azure Bastion

Como alternativa, puede usar Azure Bastion para conectarse al nodo de Windows Server.

Implementación de Azure Bastion

Para implementar Azure Bastion, deberá encontrar la red virtual a la que está conectado el clúster de AKS.

  1. En Azure portal, vaya a Redes virtuales. Seleccione la red virtual a la que está conectado el clúster de AKS.
  2. En Configuración, seleccione Bastion y, después, Deploy Bastion (Implementar Bastion). Espere hasta que finalice el proceso antes de ir al paso siguiente.

Conexión a los nodos de Windows Server mediante Azure Bastion

Vaya al grupo de recursos de nodo del clúster de AKS. Ejecute el comando siguiente en Azure Cloud Shell para obtener el nombre del grupo de recursos del nodo:

az aks show -n myAKSCluster -g myResourceGroup --query 'nodeResourceGroup' -o tsv
  1. Seleccione Información general y el conjunto de escalado de máquinas virtuales del grupo de nodos de Windows.
  2. En Configuración, seleccione Instancias. Seleccione un nodo de Windows Server al que quiera conectarse.
  3. En Soporte y solución de problemas, seleccione Bastion.
  4. Escriba las credenciales que configuró al crear el clúster de AKS. Seleccione Conectar.

Ahora puede ejecutar los comandos de la solución de problemas en la ventana de cmd. Dado que los nodos de Windows Server usan Windows Server Core, no hay una interfaz gráfica de usuario completa ni otras herramientas de la interfaz gráfica de usuario cuando se conecta a un nodo de Windows Server mediante una conexión RDP.

Nota:

Si cierra la ventana del terminal, presione CTRL + ALT + Fin, seleccione Administrador de tareas, Más detalles, Archivo y Ejecutar nueva tarea y, luego, escriba cmd.exe para abrir otro terminal. También puede cerrar la sesión y volver a conectarse con Bastion.

Eliminación del acceso con Bastion

Cuando haya terminado, salga de la sesión de Bastion y quite el recurso de Bastion.

  1. En Azure Portal, vaya a Bastion y seleccione el recurso de Bastion que ha creado.
  2. En la parte superior de la página, seleccione Eliminar. Espere a que el proceso se complete antes de continuar con el paso siguiente.
  3. En Azure portal, vaya a Redes virtuales. Seleccione la red virtual a la que está conectado el clúster de AKS.
  4. En Configuración, seleccione Subred y elimine la subred AzureBastionSubnet que se creó para el recurso de Bastion.

Pasos siguientes

Si necesita datos adicionales para la solución de problemas, puede ver los registros del nodo primario de Kubernetes o Azure Monitor.