AKS kümesindeki Linux 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 Linux düğümünden TCP dökümünü yakalama ve ardından yakalamayı yerel makinenize indirme işlemi açıklanır.
Önkoşullar
- Kubernetes kubectl aracı. Azure CLI kullanarak kubectl yüklemek için az aks install-cli komutunu çalıştırın.
- Aks kümesi. AKS kümeniz yoksa Azure CLI kullanarak veya Azure portal aracılığıylabir küme oluşturun.
- Linux düğümünde yüklü tcpdump komut satırı aracı.
Not
Arka planda DaemonSet olarak çalışabilen helm grafiği aracılığıyla TCP yakalamayı otomatikleştirebilirsiniz. Daha fazla bilgi için TCP dökümlerini yakalamak için bu özel GitHub aracına bakın veya aşağıdaki bölümlerde yer alan adımları kullanın.
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
aks-agentpool-34796016-vmss000000 Ready agent 45h v1.20.9 10.240.1.81 <none> Ubuntu 18.04.6 LTS 5.4.0-1062-azure containerd://1.4.9+azure
aks-agentpool-34796016-vmss000002 Ready agent 45h v1.20.9 10.240.2.47 <none> Ubuntu 18.04.6 LTS 5.4.0-1062-azure containerd://1.4.9+azure
2. Adım: Linux düğümüne bağlanma
Sonraki adım, ağ izlemesini yakalamak istediğiniz AKS kümesi düğümüne bir bağlantı kurmaktır. Daha fazla bilgi için bkz . Linux düğümüne etkileşimli kabuk bağlantısı oluşturma.
3. Adım: Tcpdump'un yüklü olduğundan emin olun
AKS Linux düğümüne bağlantı kurduktan sonra, komutunu çalıştırarak tcpdump --version
tcpdump aracının daha önce bir düğüme yüklendiğini doğrulayın. tcpdump yüklenmediyse aşağıdaki hata metni görüntülenir:
# tcpdump --version
bash: tcpdump: command not found
Ardından Gelişmiş Paket Aracı'nın apt-get paket işleme yardımcı programını çalıştırarak podunuza tcpdump yükleyin:
apt-get update && apt-get install tcpdump
tcpdump yüklüyse, aşağıdaki metne benzer bir şey görünür:
# tcpdump --version
tcpdump version 4.9.3
libpcap version 1.8.1
OpenSSL 1.1.1 11 Sep 2018
4. Adım: Paket yakalama oluşturma
Dökümü yakalamak için tcpdump komutunu aşağıdaki gibi çalıştırın:
# tcpdump --snapshot-length=0 -vvv -w /capture.cap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
Got 6
İ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 Ctrl+C tuşlarına basın:
# tcpdump -s 0 -vvv -w /capture.cap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
^C526 packets captured
526 packets received by filter
0 packets dropped by kernel
5. 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 0 3m29s
azure-vote-front-85b4df594d-jhpzw 1/1 Running 0 3m29s
node-debugger-aks-nodepool1-38878740-vmss000000-jfsq2 1/1 Running 0 60s
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 kubectl komutunu çalıştırın. Bu komutlar Linux düğümünüzün paket yakalamasını alır.
kubectl cp node-debugger-aks-nodepool1-38878740-vmss000000-jfsq2:/capture.cap capture.cap
Üçüncü taraf bilgileri hakkında yasal uyarı
Bu makalede adı geçen üçüncü taraf ürünleri Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft, bu ürünlerin performansı veya güvenilirliği ile ilgili örtük veya başka türlü hiçbir garanti vermez.
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