Acquisire un dump TCP da un nodo Windows in un cluster del servizio Azure Kubernetes
È possibile che si verifichino problemi di rete quando si usa un cluster microsoft servizio Azure Kubernetes (servizio Azure Kubernetes). Per analizzare questi problemi, questo articolo illustra come acquisire un dump TCP da un nodo Windows in un cluster del servizio Azure Kubernetes e quindi scaricare l'acquisizione nel computer locale.
Prerequisiti
- Interfaccia della riga di comando di Azure, versione 2.0.59 o successiva. È possibile aprire Azure Cloud Shell nel Web browser per immettere i comandi dell'interfaccia della riga di comando di Azure. In alternativa , installare o aggiornare l'interfaccia della riga di comando di Azure nel computer locale. Per trovare la versione installata nel computer, eseguire
az --version
. - Un cluster del servizio Azure Kubernetes. Se non si dispone di un cluster del servizio Azure Kubernetes, crearne uno usandol'interfaccia della riga di comando di Azure o tramite il portale di Azure.
Passaggio 1: Trovare i nodi per la risoluzione dei problemi
Come si determina da quale nodo eseguire il pull del dump TCP? Per prima cosa si ottiene l'elenco dei nodi nel cluster del servizio Azure Kubernetes usando il client della riga di comando Kubernetes kubectl. Seguire le istruzioni per connettersi al cluster ed eseguire il kubectl get nodes --output wide
comando usando il portale di Azure o l'interfaccia della riga di comando di Azure. Viene visualizzato un elenco di nodi simile all'output seguente:
$ kubectl get nodes --output wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
akswin000000 Ready agent 3m8s v1.20.9 10.240.0.4 <none> Windows Server 2019 Datacenter 10.0.17763.2237 docker://20.10.6
akswin000001 Ready agent 3m50s v1.20.9 10.240.0.115 <none> Windows Server 2019 Datacenter 10.0.17763.2237 docker://20.10.6
akswin000002 Ready agent 3m32s v1.20.9 10.240.0.226 <none> Windows Server 2019 Datacenter 10.0.17763.2237 docker://20.10.6
Passaggio 2: Connettersi a un nodo Windows
Il passaggio successivo consiste nel 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, perché 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 torna a ciò che è stato installato inizialmente nel cluster durante qualsiasi:
- Riavviare
- Aggiornamento della versione
- Aggiornamento dell'immagine del nodo
Passaggio 3: Creare un'acquisizione di pacchetti
Quando si è connessi al nodo Windows tramite SSH o RDP, viene visualizzato un formato del prompt dei comandi di Windows:
azureuser@akswin000000 C:\Users\azureuser>
Aprire ora un prompt dei comandi e immettere il comando Network Shell (netsh) seguente per l'acquisizione delle tracce (avvio della traccia netsh). Questo comando avvia il processo di acquisizione pacchetti.
netsh trace start capture=yes tracefile=C:\Users\azureuser\AKS_node_name.etl
Viene visualizzato un output simile al testo seguente:
Trace configuration:
-------------------------------------------------------------------
Status: Running
Trace File: AKS_node_name.etl
Append: Off
Circular: On
Max Size: 250 MB
Report: Off
Mentre la traccia è in esecuzione, replicare il problema più volte. Questa azione garantisce che il problema sia stato acquisito all'interno del dump TCP. Prendere nota del timestamp durante la replica del problema. Per arrestare l'acquisizione di pacchetti al termine, immettere netsh trace stop
:
azureuser@akswin000000 C:\Users\azureuser>netsh trace stop
Merging traces ... done
Generating data collection ... done
The trace file and additional troubleshooting information have been compiled as "C:\Users\azureuser\AKS_node_name.cab".
File location = C:\Users\azureuser\AKS_node_name.etl
Tracing session was successfully stopped.
Passaggio 4: Trasferire l'acquisizione in locale
Dopo aver completato l'acquisizione dei pacchetti, identificare il pod helper in modo da poter copiare il dump in locale. Aprire una seconda console e quindi ottenere un elenco di pod eseguendo kubectl get pods
, come illustrato 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. Questi comandi recuperano i file di log di traccia eventi (con estensione etl) e di archivio (.cab) generati per l'acquisizione di pacchetti.
scp -o 'ProxyCommand ssh -p 2022 -W %h:%p azureuser@127.0.0.1' azureuser@10.240.0.97:AKS_node_name.cab .
scp -o 'ProxyCommand ssh -p 2022 -W %h:%p azureuser@127.0.0.1' azureuser@10.240.0.97:AKS_node_name.etl .
Viene visualizzato un output simile al testo seguente:
$ scp -o 'ProxyCommand ssh -p 2022 -W %h:%p azureuser@127.0.0.1' azureuser@10.240.0.97:AKS_node_name.cab .
Authorized uses only. All activity may be monitored and reported.
AKS_node_name.cab 100% 571KB 984.0KB/s 00:00
scp -o 'ProxyCommand ssh -p 2022 -W %h:%p azureuser@127.0.0.1' azureuser@10.240.0.97:AKS_node_name.etl .
Authorized uses only. All activity may be monitored and reported.
AKS_node_name.etl 100% 1536KB 1.3MB/s 00:01
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.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per