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 su 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 mediante el Azure Portal.
Grupos de agentes de Windows creados después
3/13/2024
de o una imagen de nodo que se actualizó a la versión20240316
de la imagen de Windows de AKS o a una versión posterior. Como alternativa, compruebe si la versión de WindowsCSEScriptsPackage es v0.0.39 o posterior, que se puede encontrar enC:\AzureData\CustomDataSetupScript.log
en 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 aprender qué nodo de Windows de AKS hospeda el pod.
Paso 3: Conectarse al nodo de Windows
Establezca una conexión con el nodo del 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 o RDP, debe especificar el nombre de usuario de 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 se conserva en los nodos de AKS. La clave SSH se revierte a lo que se instaló inicialmente en el clúster durante cualquiera de las siguientes acciones:
- Restart
- Actualización de la versión
- Actualización de la imagen de nodo
Paso 4: Transferencia local del archivo de volcado
Después de que se produzca un error en el contenedor, identifique el pod auxiliar para que pueda copiar el archivo de volcado localmente. Abra una segunda consola y, a continuación, obtenga una lista de pods mediante la ejecución del kubectl get pods
comando , 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 encontrar 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.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de