Een Windows-containerdumpbestand vastleggen vanaf een Windows-knooppunt in een AKS-cluster
Als een Windows-container mislukt op een Microsoft Azure Kubernetes Service-cluster (AKS), moet u mogelijk het Windows-containerdumpbestand onderzoeken om de hoofdoorzaak te onderzoeken. Dit artikel bevat stappen voor het vastleggen van een Windows-containerdumpbestand vanaf een Windows-knooppunt in een AKS-cluster. Het bevat ook instructies voor het downloaden van het dumpbestand naar uw lokale computer voor verdere analyse.
Vereisten
Een AKS-cluster. Als u geen AKS-cluster hebt, maakt u er een met behulp van Azure CLI of via de Azure Portal.
Windows-agentgroepen die zijn gemaakt na
3/13/2024
of een knooppuntinstallatiekopieën die zijn bijgewerkt naar AKS Windows-installatiekopieën20240316
of een latere versie. U kunt ook controleren of de Versie van WindowsCSEScriptsPackage v0.0.39 of hoger is, die zich opC:\AzureData\CustomDataSetupScript.log
de Windows-knooppunten kan bevinden.
Stap 1: metagegevens van aantekeningen toevoegen aan uw implementatie
Koppel een hostmap in de container en voeg de metagegevens van aantekeningen toe om de Windows-container te vragen het dumpbestand op te slaan in een aangewezen map:
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: het probleem reproduceren
Implementeer uw implementatie opnieuw en wacht tot de Windows-container 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 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 omdat u momenteel niet rechtstreeks 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 wordt tijdens een van de volgende acties teruggezet naar wat in eerste instantie op het cluster was geïnstalleerd:
- Opnieuw opstarten
- Versie-upgrade
- Upgrade van knooppuntinstallatiekopieën
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 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 helperpod heeft het voorvoegsel 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 uitvalt:
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 Feedback-community van Azure.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor