Samla in en Windows-containerdumpfil från en Windows-nod i ett AKS-kluster
Om en Windows-container misslyckas i ett Microsoft Azure Kubernetes Service-kluster (AKS) kan du behöva undersöka Windows-containerdumpfilen för att undersöka rotorsaken. Den här artikeln innehåller steg för att samla in en Windows-containerdumpfil från en Windows-nod i ett AKS-kluster. Den innehåller också instruktioner för att ladda ned dumpfilen till din lokala dator för ytterligare analys.
Förutsättningar
Ett AKS-kluster. Om du inte har ett AKS-kluster skapar du ett med hjälp av Azure CLI eller via Azure Portal.
Windows-agentpooler som skapas efter
3/13/2024
eller en nodbild som har uppgraderats till AKS Windows-avbildningsversion20240316
eller en senare version. Alternativt kan du kontrollera om WindowsCSEScriptsPackage-versionen är v0.0.39 eller senare, som kan finnas iC:\AzureData\CustomDataSetupScript.log
på Windows-noderna.
Steg 1: Lägga till anteckningsmetadata i distributionen
Montera en värdmapp i containern och lägg till anteckningarnas metadata för att begära att Windows-containern lagrar dumpfilen i en angiven mapp:
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
Steg 2: Återskapa problemet
Distribuera om distributionen och vänta tills Windows-containern misslyckas. Du kan använda kubectl describe pod -n [POD-NAMESPACE] [POD-NAME]
för att lära dig vilken AKS Windows-nod som är värd för podden.
Steg 3: Anslut till Windows-noden
Upprätta en anslutning till AKS-klusternoden. Du autentiserar antingen med hjälp av en SSH-nyckel (Secure Shell) eller Windows-administratörslösenordet i en RDP-anslutning (Remote Desktop Protocol). Båda metoderna kräver att du skapar en mellanliggande anslutning. Det beror på att du för närvarande inte kan ansluta direkt till AKS Windows-noden. Oavsett om du ansluter till en nod via SSH eller RDP måste du ange användarnamnet för AKS-noderna. Som standard är azureuser
det här användarnamnet .
Om du har en SSH-nyckel skapar du en SSH-anslutning till Windows-noden. SSH-nyckeln finns inte kvar på dina AKS-noder. SSH-nyckeln återgår till det som ursprungligen installerades på klustret under någon av följande åtgärder:
- Starta om
- Versionsuppgradering
- Uppgradering av nodbild
Steg 4: Överför dumpfilen lokalt
När containern misslyckas identifierar du hjälppodden så att du kan kopiera dumpfilen lokalt. Öppna en andra konsol och hämta sedan en lista över poddar genom att köra kubectl get pods
kommandot på följande sätt:
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
Hjälppodden har prefixet node-debugger-aks
, som visas på den tredje raden. Ersätt poddnamnet och kör sedan följande scp-kommandon (Secure Copy) för att hämta dumpfilerna (.dmp) som sparas när containern misslyckas:
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 .
Du kan lista C:\k\containerdumps
mappen för att hitta den fullständiga sökvägen till dumpfilerna när anslutningen har upprättats till Windows-noden.
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.