Se connecter avec RDP à des nœuds Windows Server de cluster AKS (Azure Kubernetes Service) à des fins de maintenance ou de résolution des problèmes

Tout au long du cycle de vie de votre cluster AKS (Azure Kubernetes Service ), vous pouvez être amené à accéder à un nœud Windows Server AKS, que ce soit pour effectuer une tâche de maintenance, une collecte de journaux ou d’autres opérations de dépannage. Vous pouvez accéder aux nœuds Windows Server AKS à l’aide de RDP. Pour des raisons de sécurité, les nœuds AKS ne sont pas exposés à Internet.

Sinon, si vous souhaitez établir une connexion SSH à vos nœuds Windows Server AKS, vous devez accéder à la même paire de clés que celle utilisée lors de la création du cluster. Suivez la procédure décrite dans SSH dans les nœuds de cluster Azure Kubernetes Service (AKS).

Cet article vous montre comment créer une connexion RDP avec des nœuds AKS en utilisant leurs adresses IP privées.

Avant de commencer

Cet article part de l’hypothèse que vous disposez déjà d’un cluster AKS avec un nœud Windows Server. Si vous avez besoin d’un cluster AKS, consultez l’article traitant de la création d’un cluster AKS avec un conteneur Windows à partir d’Azure CLI. Vous avez besoin du nom d’utilisateur et du mot de passe de l’administrateur Windows du nœud Windows Server dont vous souhaitez résoudre les problèmes. Vous avez aussi besoin d’un client RDP comme Bureau à distance Microsoft.

Si vous devez réinitialiser le mot de passe, utilisez az aks update pour le modifier.

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

Si vous devez réinitialiser le nom d’utilisateur et le mot de passe, consultez Réinitialiser les Services Bureau à distance ou le mot de passe administrateur associé dans une machine virtuelle Windows.

Azure CLI version 2.0.61 ou ultérieure doit également être installé et configuré. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.

Déployer une machine virtuelle dans le même sous-réseau que votre cluster

Les nœuds Windows Server de votre cluster AKS n’ont pas d’adresses IP accessibles en externe. Pour établir une connexion RDP, vous pouvez déployer une machine virtuelle dotée d’une adresse IP accessible publiquement dans le même sous-réseau que vos nœuds Windows Server.

Dans l’exemple suivant, une machine virtuelle nommée myVM est créée dans le groupe de ressources myResourceGroup.

Obtenez l’ID du sous-réseau utilisé par votre pool de nœuds et requête Windows Server pour :

  • Groupe de ressources de nœud du cluster
  • Le réseau virtuel
  • Nom du sous-réseau
  • ID du sous-réseau
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)

Maintenant que vous disposez du SUBNET_ID, exécutez la commande suivante dans la même fenêtre Azure Cloud Shell pour créer la machine virtuelle :

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

L’exemple de sortie suivant montre que la machine virtuelle a bien été créée et présente l’adresse IP publique de la machine virtuelle.

13.62.204.18

Enregistrez l’adresse IP publique de la machine virtuelle. Vous utiliserez cette adresse dans une étape ultérieure.

Autoriser l’accès à la machine virtuelle

Les sous-réseaux de pools de nœuds AKS sont protégés par défaut avec des groupes de sécurité réseau (NSG). Pour accéder à la machine virtuelle, vous devez activer l’accès au groupe de sécurité réseau.

Notes

Les groupes de sécurité réseau sont contrôlés par le service AKS. Toute modification apportée au groupe de sécurité réseau sera remplacée à tout moment par le plan de contrôle.

Tout d’abord, récupérez le groupe de ressources et le nom du groupe de sécurité réseau auquel ajouter la règle :

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)

Ensuite, créez la règle du groupe de sécurité réseau :

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"

Obtenir l’adresse des nœuds

Pour gérer un cluster Kubernetes, vous utilisez kubectl, le client de ligne de commande Kubernetes. Si vous utilisez Azure Cloud Shell, kubectl est déjà installé. Pour installer kubectl en local, utilisez la commande az aks install-cli :

az aks install-cli

Pour configurer kubectl afin de vous connecter à votre cluster Kubernetes, exécutez la commande az aks get-credentials. Cette commande télécharge les informations d’identification et configure l’interface CLI Kubernetes pour les utiliser.

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

Listez les adresses IP internes des nœuds Windows Server en utilisant la commande kubectl get :

kubectl get nodes -o wide

L’exemple de sortie suivant montre les adresses IP internes de tous les nœuds du cluster, y compris des nœuds 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

Enregistrez l’adresse IP interne du nœud Windows Server dont vous voulez résoudre les problèmes. Vous utiliserez cette adresse dans une étape ultérieure.

Se connecter à la machine virtuelle et au nœud

Connectez-vous à l’adresse IP publique de la machine virtuelle que vous avez créée précédemment à l’aide d’un client RDP comme le Bureau à distance Microsoft.

Image of connecting to the virtual machine using an RDP client

Après vous être connecté à la machine virtuelle, connectez-vous à l’adresse IP interne du nœud Windows Server dont vous voulez résoudre les problèmes à l’aide d’un client RDP depuis votre machine virtuelle.

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

Vous êtes maintenant connecté à votre nœud Windows Server.

Image of cmd window in the Windows Server node

Vous pouvez maintenant exécuter des commandes de dépannage dans la fenêtre cmd. Comme les nœuds Windows Server utilisent Windows Server Core, vous ne disposez pas d’interface GUI complète ou d’autres outils GUI au moment où vous vous connectez à un nœud Windows Server via RDP.

Retirer l’accès RDP

Lorsque vous avez terminé, quittez la connexion RDP au nœud Windows Server, puis quittez la session RDP sur la machine virtuelle. Après avoir quitté les deux sessions RDP, supprimez la machine virtuelle avec la commande az vm delete :

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

Supprimez l’adresse IP publique associée à la machine virtuelle :

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

Supprimez la règle de groupe de sécurité réseau :

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

Se connecter avec Azure Bastion

Vous pouvez également utiliser Azure Bastion pour vous connecter à votre nœud Windows Server.

Déployer Azure Bastion

Pour déployer Azure Bastion, vous devez trouver le réseau virtuel auquel votre cluster AKS est connecté.

  1. Dans le portail Azure, accédez à Réseaux virtuels. Sélectionnez le réseau virtuel auquel votre cluster AKS est connecté.
  2. Sous Paramètres, sélectionnez Bastion, puis Déployer Bastion. Attendez que le processus se termine avant de passer à l’étape suivante.

Se connecter aux nœuds Windows Server à l’aide d’Azure Bastion

Accédez au groupe de ressources de nœud du cluster AKS. Exécutez la commande ci-dessous dans Azure Cloud Shell pour obtenir le nom de votre groupe de ressources de nœud :

az aks show -n myAKSCluster -g myResourceGroup --query 'nodeResourceGroup' -o tsv
  1. Sélectionnez Vue d’ensemble, puis votre groupe de machines virtuelles identiques de pool de nœuds Windows.
  2. Dans Paramètres, sélectionnez Instances. Sélectionnez un nœud Windows Server auquel vous souhaitez vous connecter.
  3. Sous Support + dépannage, sélectionnez Bastion.
  4. Entrez les informations d’identification que vous avez configurées lors de la création du cluster AKS. Sélectionnez Se connecter.

Vous pouvez maintenant exécuter des commandes de dépannage dans la fenêtre cmd. Comme les nœuds Windows Server utilisent Windows Server Core, vous ne disposez pas d’interface GUI complète ou d’autres outils GUI au moment où vous vous connectez à un nœud Windows Server via RDP.

Notes

Si vous fermez la fenêtre du terminal, appuyez sur Ctrl + Alt + Fin, sélectionnez Gestionnaire des tâches, Plus de détails, Fichier, Exécuter une nouvelle tâche, puis entrez cmd.exe pour ouvrir un autre terminal. Vous pouvez également vous déconnecter et vous reconnecter avec Bastion.

Supprimer l’accès Bastion

Lorsque vous avez terminé, quittez la session Bastion et supprimez la ressource Bastion.

  1. Dans le portail Azure, accédez à Bastion et sélectionnez la ressource Bastion que vous avez créée.
  2. En haut de la page, sélectionnez Supprimer. Attendez que le processus se termine avant de passer à l’étape suivante.
  3. Dans le portail Azure, accédez à Réseaux virtuels. Sélectionnez le réseau virtuel auquel votre cluster AKS est connecté.
  4. Sous Paramètres, sélectionnez Sous-réseau, puis supprimez le sous-réseau AzureBastionSubnet créé pour la ressource Bastion.

Étapes suivantes

Si vous avez besoin de plus de données de dépannage, vous pouvez consulter les journaux de nœud principal Kubernetes ou Azure Monitor.