Dela via


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

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 stopdu :

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.