Avbilda en TCP-dump från en Windows-nod i ett AKS-kluster
Nätverksproblem kan uppstå när du använder ett AkS-kluster (Microsoft Azure Kubernetes Service). För att undersöka dessa problem förklarar den här artikeln hur du samlar in en TCP-dump från en Windows-nod i ett AKS-kluster och sedan laddar ned avbildningen till den lokala datorn.
Förutsättningar
- Azure CLI version 2.0.59 eller senare. Du kan öppna Azure Cloud Shell i webbläsaren för att ange Azure CLI-kommandon. Eller installera eller uppgradera Azure CLI på din lokala dator. Kör för att hitta den version som är installerad på datorn
az --version
. - Ett AKS-kluster. Om du inte har ett AKS-kluster skapar du ett med hjälp av Azure CLI eller via Azure Portal.
Steg 1: Hitta de noder som ska felsökas
Hur avgör du vilken nod som TCP-dumpen ska hämtas från? Först hämtar du listan över noder i AKS-klustret med kubernetes-kommandoradsklienten kubectl. Följ anvisningarna för att ansluta till klustret och köra kubectl get nodes --output wide
kommandot med hjälp av Azure Portal eller Azure CLI. En nodlista som liknar följande utdata visas:
$ 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
Steg 2: Ansluta till en Windows-nod
Nästa steg är att upprätta en anslutning till AKS-klusternoden. Du autentiserar antingen med en SSH-nyckel (Secure Shell) eller med windowsadministratörslösenordet i en RDP-anslutning (Remote Desktop Protocol). Båda metoderna kräver att du skapar en mellanliggande anslutning eftersom du för närvarande inte kan ansluta direkt till AKS Windows-noden. Oavsett om du ansluter till en nod via SSH eller RDP måste du ange användarnamnet för AKS-noderna. Som standard är det här användarnamnet azureuser.
Om du har en SSH-nyckel skapar du en SSH-anslutning till Windows-noden. SSH-nyckeln finns inte kvar på dina AKS-noder. SSH-nyckeln återgår till det som ursprungligen installerades på klustret under någon:
- Omstart
- Versionsuppgradering
- Uppgradering av nodbild
Steg 3: Skapa en paketinsamling
När du är ansluten till Windows-noden via SSH eller RDP visas en form av Windows-kommandotolken:
azureuser@akswin000000 C:\Users\azureuser>
Öppna nu en kommandotolk och ange network shell-kommandot (netsh) nedan för att samla in spårningar (netsh trace start). Det här kommandot startar paketinsamlingsprocessen.
netsh trace start capture=yes tracefile=C:\Users\azureuser\AKS_node_name.etl
Utdata visas som liknar följande text:
Trace configuration:
-------------------------------------------------------------------
Status: Running
Trace File: AKS_node_name.etl
Append: Off
Circular: On
Max Size: 250 MB
Report: Off
När spårningen körs replikerar du problemet många gånger. Den här åtgärden säkerställer att problemet har registrerats i TCP-dumpen. Observera tidsstämpeln när du replikerar problemet. Om du vill stoppa paketinsamlingen när du är klar anger netsh trace stop
du :
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.
Steg 4: Överför avbildningen lokalt
När du har slutfört paketinsamlingen identifierar du hjälppodden så att du kan kopiera dumpen lokalt. Öppna en andra konsol och hämta sedan en lista över poddar genom att köra kubectl get pods
, enligt nedan.
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
Hjälppodden har prefixet node-debugger-aks
, som visas på den tredje raden. Ersätt poddnamnet och kör sedan följande scp-kommandon (Secure Copy). Dessa kommandon hämtar filerna för händelsespårningsloggen (.etl) och arkivfilerna (.cab), som genereras för paketinsamlingen.
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 .
Utdata som liknar följande text visas:
$ 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
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för