Share via


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ën 20240316 of een latere versie. U kunt ook controleren of de Versie van WindowsCSEScriptsPackage v0.0.39 of hoger is, die zich op C:\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 azureuserstandaard .

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.