AKS kümesindeki bir Windows düğümünden TCP dökümü yakalama
Bir Microsoft Azure Kubernetes Service (AKS) kümesi kullanırken ağ sorunları oluşabilir. Bu sorunların araştırılmasına yardımcı olmak için, bu makalede AKS kümesindeki bir Windows düğümünden TCP dökümünü yakalama ve ardından yakalamayı yerel makinenize indirme işlemleri açıklanmaktadır.
Önkoşullar
- Azure CLI, sürüm 2.0.59 veya üzeri. Azure CLI komutlarını girmek için Web tarayıcısında Azure Cloud Shell açabilirsiniz. Ya da yerel makinenize Azure CLI'yi yükleyin veya yükseltin . Makinenizde yüklü olan sürümü bulmak için komutunu çalıştırın
az --version
. - Aks kümesi. AKS kümeniz yoksa Azure CLI kullanarak veya Azure portal aracılığıylabir küme oluşturun.
1. Adım: Sorun giderecek düğümleri bulma
TCP dökümünü hangi düğümden çekebileceğinizi nasıl belirlersiniz? İlk olarak Kubernetes komut satırı istemcisi kubectl'yi kullanarak AKS kümesindeki düğümlerin listesini alırsınız. Kümeye bağlanmak için yönergeleri izleyin ve Azure portal veya Azure CLIkullanarak komutunu çalıştırınkubectl get nodes --output wide
. Aşağıdaki çıkışa benzer bir düğüm listesi görüntülenir:
$ 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
2. Adım: Windows düğümüne bağlanma
Sonraki adım AKS kümesi düğümüne bağlantı kurmaktır. Secure Shell (SSH) anahtarı kullanarak veya Uzak Masaüstü Protokolü (RDP) bağlantısında Windows yönetici parolasını kullanarak kimlik doğrulaması yaparsınız. Şu anda AKS Windows düğümüne doğrudan bağlanamadığınız için her iki yöntem de ara bağlantı oluşturulmasını gerektirir. Bir düğüme SSH veya RDP aracılığıyla bağlansanız da AKS düğümleri için kullanıcı adını belirtmeniz gerekir. Varsayılan olarak, bu kullanıcı adı azureuser'dır.
SSH anahtarınız varsa Windows düğümüne bir SSH bağlantısı oluşturun. SSH anahtarı AKS düğümlerinizde kalıcı olmaz. SSH anahtarı, herhangi bir işlem sırasında başlangıçta kümede yüklü olan anahtara geri döner:
- Yeni -den başlatma
- Sürüm yükseltme
- Düğüm görüntüsü yükseltme
3. Adım: Paket yakalama oluşturma
Windows düğümüne SSH veya RDP aracılığıyla bağlandığınızda, Windows komut isteminin bir biçimi görüntülenir:
azureuser@akswin000000 C:\Users\azureuser>
Şimdi bir komut istemi açın ve izlemeleri yakalamak için aşağıdaki Network Shell (netsh) komutunu girin (netsh izleme başlangıcı). Bu komut paket yakalama işlemini başlatır.
netsh trace start capture=yes tracefile=C:\Users\azureuser\AKS_node_name.etl
Çıktı aşağıdaki metne benzer şekilde görünür:
Trace configuration:
-------------------------------------------------------------------
Status: Running
Trace File: AKS_node_name.etl
Append: Off
Circular: On
Max Size: 250 MB
Report: Off
İzleme çalışırken sorununuzu birçok kez çoğaltın. Bu eylem, sorunun TCP dökümü içinde yakalanmasını sağlar. Sorunu çoğaltırken zaman damgasını not edin. İşiniz bittiğinde paket yakalamayı durdurmak için girin 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.
4. Adım: Yakalamayı yerel olarak aktarma
Paket yakalama işlemini tamamladıktan sonra dökümü yerel olarak kopyalayabilmeniz için yardımcı podu tanımlayın. İkinci bir konsol açın ve aşağıda gösterildiği gibi komutunu çalıştırarak kubectl get pods
podların listesini alın.
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
Yardımcı podunun, üçüncü satırda gösterildiği gibi ön eki node-debugger-aks
vardır. Pod adını değiştirin ve aşağıdaki Güvenli Kopyalama (scp) komutlarını çalıştırın. Bu komutlar, paket yakalama için oluşturulan olay izleme günlüğünü (.etl) ve arşiv (.cab) dosyalarını alır.
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 .
Aşağıdaki metne benzer bir çıkış görüntülenir:
$ 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
Yardım için bize ulaşın
Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin