Compartir a través de


Captura de un archivo de volcado de contenedor de Windows desde un nodo de Windows en un clúster de AKS

Si se produce un error en un contenedor de Windows en un clúster de Microsoft Azure Kubernetes Service (AKS), es posible que tenga que examinar el archivo de volcado de contenedor de Windows para investigar la causa principal. En este artículo se proporcionan pasos para capturar un archivo de volcado de contenedor de Windows desde un nodo de Windows en un clúster de AKS. También incluye instrucciones para descargar el archivo de volcado en el equipo local para realizar un análisis posterior.

Requisitos previos

  • Un clúster de AKS. Si no tiene un clúster de AKS, cree uno mediante la CLI de Azure o a través de Azure Portal.

  • Grupos de agentes de Windows creados después 3/13/2024 o una imagen de nodo que se actualizó a la versión 20240316 de la imagen de Windows de AKS o una versión posterior. Como alternativa, compruebe si la versión de WindowsCSEScriptsPackage es v0.0.39 o posterior, que se puede encontrar en en C:\AzureData\CustomDataSetupScript.log los nodos de Windows.

Paso 1: Agregar metadatos de anotaciones a la implementación

Monte una carpeta host en el contenedor y agregue los metadatos de anotaciones para solicitar que el contenedor de Windows almacene el archivo de volcado en una carpeta designada:

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

Paso 2: Reproducir el problema

Vuelva a implementar la implementación y espere a que se produzca un error en el contenedor de Windows. Puede usar kubectl describe pod -n [POD-NAMESPACE] [POD-NAME] para obtener información sobre qué nodo de Windows de AKS hospeda el pod.

Paso 3: Conectarse al nodo de Windows

Establezca una conexión con el nodo de clúster de AKS. Puede autenticarse mediante una clave de Secure Shell (SSH) o la contraseña de administrador de Windows en una conexión de Protocolo de escritorio remoto (RDP). Ambos métodos requieren que cree una conexión intermedia. Esto se debe a que actualmente no se puede conectar directamente al nodo de Windows de AKS. Tanto si se conecta a un nodo a través de SSH como rdP, debe especificar el nombre de usuario para los nodos de AKS. De forma predeterminada, este nombre de usuario es azureuser.

Si tiene una clave SSH, cree una conexión SSH al nodo de Windows. La clave SSH no persiste en los nodos de AKS. La clave SSH vuelve a lo que se instaló inicialmente en el clúster durante cualquiera de las siguientes acciones:

  • Reiniciar
  • Actualización de la versión
  • Actualización de la imagen de nodo

Paso 4: Transferir el archivo de volcado localmente

Después de que se produzca un error en el contenedor, identifique el pod auxiliar para que pueda copiar el archivo de volcado de memoria localmente. Abra una segunda consola y, a continuación, ejecute el kubectl get pods comando para obtener una lista de pods, como se indica a continuación:

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

El pod auxiliar tiene un prefijo de node-debugger-aks, como se muestra en la tercera fila. Reemplace el nombre del pod y, a continuación, ejecute los siguientes comandos de copia segura (scp) para recuperar los archivos de volcado de memoria (.dmp) que se guardan cuando se produce un error en el contenedor:

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 .

Puede enumerar la C:\k\containerdumps carpeta para buscar la ruta de acceso completa de los archivos de volcado después de realizar la conexión al nodo de Windows.

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.