Een Windows-containerdumpbestand vastleggen vanuit een Windows-knooppunt in een AKS-cluster
Als een Windows-container mislukt in een AKS-cluster (Microsoft Azure Kubernetes Service), moet u mogelijk het Dump-bestand van de Windows-container onderzoeken om de hoofdoorzaak te onderzoeken. Dit artikel bevat stappen voor het vastleggen van een Windows-containerdumpbestand van een Windows-knooppunt in een AKS-cluster. Het bevat ook instructies voor het downloaden van het dumpbestand naar uw lokale computer voor verdere analyse.
Voorwaarden
Een AKS-cluster. Als u geen AKS-cluster hebt, maakt u er een met behulp van Azure CLI of via Azure Portal.
Windows-agentgroepen die worden gemaakt na
3/13/2024
of een knooppuntinstallatiekopieën die zijn bijgewerkt naar de versie van de Windows-installatiekopieën van20240316
AKS of een latere versie. U kunt ook controleren of de windowsCSEScriptsPackage-versie v0.0.39 of hoger is, die zich op de Windows-knooppunten kan bevindenC:\AzureData\CustomDataSetupScript.log
.
Stap 1: Metagegevens van aantekeningen toevoegen aan uw implementatie
Koppel een hostmap in de container en voeg de metagegevens van aantekeningen toe om aan te vragen dat het dumpbestand in een aangewezen map wordt opgeslagen in de Windows-container:
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
Stap 2: Reproduceer het probleem
Implementeer uw implementatie opnieuw en wacht tot de Windows-container is mislukt. U kunt gebruiken kubectl describe pod -n [POD-NAMESPACE] [POD-NAME]
om te leren welk AKS Windows-knooppunt als host fungeert voor de pod.
Stap 3: Verbinding maken met het Windows-knooppunt
Maak een verbinding met het AKS-clusterknooppunt. U verifieert zich met behulp van een SSH-sleutel (Secure Shell) of het Windows-beheerderswachtwoord in een RDP-verbinding (Remote Desktop Protocol). Voor beide methoden moet u een tussenliggende verbinding maken. Dit komt doordat u momenteel geen rechtstreekse verbinding kunt maken met het AKS Windows-knooppunt. Of u nu verbinding maakt met een knooppunt via SSH of RDP, u moet de gebruikersnaam voor de AKS-knooppunten opgeven. Deze gebruikersnaam is azureuser
standaard .
Als u een SSH-sleutel hebt, maakt u een SSH-verbinding met het Windows-knooppunt. De SSH-sleutel blijft niet behouden op uw AKS-knooppunten. De SSH-sleutel keert terug naar wat in eerste instantie op het cluster is geïnstalleerd tijdens een van de volgende acties:
- Opnieuw starten
- Versie-upgrade
- Upgrade van knooppuntinstallatiekopie
Stap 4: het dumpbestand lokaal overdragen
Nadat de container is mislukt, identificeert u de helperpod zodat u het dumpbestand lokaal kunt kopiëren. Open een tweede console en haal vervolgens een lijst met pods op door de kubectl get pods
opdracht als volgt uit te voeren:
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
De helper-pod heeft een voorvoegsel van node-debugger-aks
, zoals wordt weergegeven in de derde rij. Vervang de podnaam en voer vervolgens de volgende SCP-opdrachten (Secure Copy) uit om de dumpbestanden (.dmp) op te halen die worden opgeslagen wanneer de container mislukt:
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 .
U kunt de C:\k\containerdumps
map weergeven om het volledige pad van de dumpbestanden te vinden nadat de verbinding met het Windows-knooppunt is gemaakt.
Contacteer ons voor hulp
Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.