Acquisire un file di dump del contenitore Windows da un nodo Windows in un cluster del servizio Azure Kubernetes
Se un contenitore Windows ha esito negativo in un cluster microsoft servizio Azure Kubernetes (servizio Azure Kubernetes), potrebbe essere necessario esaminare il file di dump del contenitore di Windows per analizzare la causa radice. Questo articolo illustra i passaggi per acquisire un file di dump del contenitore Windows da un nodo Windows in un cluster del servizio Azure Kubernetes. Include anche istruzioni per scaricare il file di dump nel computer locale per un'ulteriore analisi.
Prerequisiti
Un cluster del servizio Azure Kubernetes. Se non si dispone di un cluster del servizio Azure Kubernetes, crearne uno usando l'interfaccia della riga di comando di Azure o tramite il portale di Azure.
Pool di agenti Windows creati dopo
3/13/2024
o un'immagine del nodo aggiornata alla versione20240316
dell'immagine windows del servizio Azure Kubernetes o a una versione successiva. In alternativa, verificare se la versione di WindowsCSEScriptsPackage è v0.0.39 o successiva, che può trovarsi neiC:\AzureData\CustomDataSetupScript.log
nodi Windows.
Passaggio 1: Aggiungere metadati delle annotazioni alla distribuzione
Montare una cartella host nel contenitore e aggiungere i metadati delle annotazioni per richiedere che il contenitore di Windows archivi il file di dump in una cartella designata:
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
Passaggio 2: Riprodurre il problema
Ridistribuire la distribuzione e attendere l'esito negativo del contenitore Windows. È possibile usare kubectl describe pod -n [POD-NAMESPACE] [POD-NAME]
per scoprire quale nodo windows del servizio Azure Kubernetes ospita il pod.
Passaggio 3: Connettersi al nodo Windows
Stabilire una connessione al nodo del cluster del servizio Azure Kubernetes. L'autenticazione viene eseguita usando una chiave SSH (Secure Shell) o la password di amministratore di Windows in una connessione RDP (Remote Desktop Protocol). Entrambi i metodi richiedono la creazione di una connessione intermedia. Ciò è dovuto al fatto che attualmente non è possibile connettersi direttamente al nodo Windows del servizio Azure Kubernetes. Sia che ci si connetta a un nodo tramite SSH o RDP, è necessario specificare il nome utente per i nodi del servizio Azure Kubernetes. Per impostazione predefinita, questo nome utente è azureuser
.
Se si dispone di una chiave SSH, creare una connessione SSH al nodo Windows. La chiave SSH non viene mantenuta nei nodi del servizio Azure Kubernetes. La chiave SSH ripristina ciò che è stato installato inizialmente nel cluster durante una delle azioni seguenti:
- Riavvia
- Aggiornamento della versione
- Aggiornamento dell'immagine del nodo
Passaggio 4: Trasferire il file di dump in locale
Dopo l'errore del contenitore, identificare il pod helper in modo che sia possibile copiare il file di dump in locale. Aprire una seconda console e quindi ottenere un elenco di pod eseguendo il kubectl get pods
comando , come indicato di seguito:
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
Il pod helper ha il prefisso node-debugger-aks
, come illustrato nella terza riga. Sostituire il nome del pod ed eseguire i comandi di copia sicura (scp) seguenti per recuperare i file di dump (.dmp) salvati quando il contenitore ha esito negativo:
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 .
È possibile elencare la C:\k\containerdumps
cartella per trovare il percorso completo dei file di dump dopo la connessione al nodo Windows.
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.