Partager via


Capturer un fichier de vidage de conteneur Windows à partir d’un nœud Windows dans un cluster AKS

Si un conteneur Windows échoue sur un cluster Microsoft Azure Kubernetes Service (AKS), vous devrez peut-être examiner le fichier de vidage du conteneur Windows pour en déterminer la cause racine. Cet article décrit les étapes à suivre pour capturer un fichier de vidage de conteneur Windows à partir d’un nœud Windows dans un cluster AKS. Il inclut également des instructions pour télécharger le fichier de vidage sur votre ordinateur local pour une analyse plus approfondie.

Configuration requise

  • Un cluster AKS. Si vous n’avez pas de cluster AKS, créez-en un à l’aide d’Azure CLI ou via le Portail Azure.

  • Pools d’agents Windows créés après 3/13/2024 ou une image de nœud mise à niveau vers une version 20240316 d’image Windows AKS ou une version ultérieure. Vous pouvez également vérifier si la version de WindowsCSEScriptsPackage est v0.0.39 ou ultérieure, qui peut se trouver dans C:\AzureData\CustomDataSetupScript.log sur les nœuds Windows.

Étape 1 : Ajouter des métadonnées d’annotations à votre déploiement

Montez un dossier hôte dans le conteneur et ajoutez les métadonnées des annotations afin de demander que le conteneur Windows stocke le fichier de vidage dans un dossier désigné :

metadata:
  ...
  annotations:
    "io.microsoft.container.processdumplocation": "C:\\CrashDumps\\{container_id}"
    "io.microsoft.wcow.processdumptype": "mini"
    "io.microsoft.wcow.processdumpcount": "10"
spec:
  ...
  containers:
  - name: containername
    image: ...
    ...
    volumeMounts:
      - mountPath: C:\CrashDumps
        name: local-dumps
  volumes:
  - name: local-dumps
    hostPath:
      path: C:\k\containerdumps
      type: DirectoryOrCreate

Étape 2 : Reproduire le problème

Redéployez votre déploiement et attendez que le conteneur Windows échoue. Vous pouvez utiliser kubectl describe pod -n [POD-NAMESPACE] [POD-NAME] pour savoir quel nœud Windows AKS héberge le pod.

Étape 3 : Se connecter au nœud Windows

Établissez une connexion au nœud de cluster AKS. Vous vous authentifiez à l’aide d’une clé SSH (Secure Shell) ou du mot de passe administrateur Windows dans une connexion RDP (Remote Desktop Protocol). Les deux méthodes nécessitent la création d’une connexion intermédiaire. Cela est dû au fait que vous ne pouvez pas vous connecter directement au nœud Windows AKS. Que vous vous connectiez à un nœud via SSH ou RDP, vous devez spécifier le nom d’utilisateur des nœuds AKS. Par défaut, ce nom d’utilisateur est azureuser.

Si vous disposez d’une clé SSH, créez une connexion SSH au nœud Windows. La clé SSH ne persiste pas sur vos nœuds AKS. La clé SSH revient à ce qui a été initialement installé sur le cluster lors de l’une des actions suivantes :

  • Redémarrer
  • Mise à niveau de version
  • Mise à niveau d’image de nœud

Étape 4 : Transférer le fichier de vidage localement

Après l’échec du conteneur, identifiez le pod d’assistance afin de pouvoir copier le fichier de vidage localement. Ouvrez une deuxième console, puis obtenez une liste de pods en exécutant la kubectl get pods commande , comme suit :

kubectl get pods
NAME                                                    READY   STATUS    RESTARTS   AGE
azure-vote-back-6c4dd64bdf-m4nk7                        1/1     Running   2          3d21h
azure-vote-front-85b4df594d-jhpzw                       1/1     Running   2          3d21h
node-debugger-aks-nodepool1-38878740-vmss000000-6ztp6   1/1     Running   0          3m58s

Le pod d’assistance a un préfixe de node-debugger-aks, comme indiqué dans la troisième ligne. Remplacez le nom du pod, puis exécutez les commandes scp (Secure Copy) suivantes pour récupérer les fichiers de vidage (.dmp) enregistrés en cas de défaillance du conteneur :

scp -o 'ProxyCommand ssh -p 2022 -W %h:%p azureuser@127.0.0.1' azureuser@10.240.0.97:/C:/k/containerdumps/{container_id}/{application}.dmp .

Vous pouvez lister le C:\k\containerdumps dossier pour trouver le chemin complet des fichiers de vidage après la connexion au nœud Windows.

Contactez-nous pour obtenir de l’aide

Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.