服務網格ASM支持針對網格內部署的工作負載發起網絡包探測任務,獲取一定時段內Pod內的TCP流量包信息,并轉儲到Kubernetes集群節點機器上以供下載查看。本文介紹網絡包探測任務診斷網格內流量。
背景信息
當應用接入服務網格后,由于應用本身的多樣性,可能會產生某些流量不符合預期的問題,如請求頭過大、請求沒有遵守標準HTTP協議等。網絡包探測任務可以快捷地針對工作負載抓取流量信息,輔助進行復雜流量問題的快速診斷。
前提條件
操作步驟
登錄ASM控制臺,在左側導航欄,選擇 。
在網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇 。
在網格診斷頁面,單擊服務網絡包探測。
在服務網絡包探測頁面,單擊創建任務,在彈出的對話框中,填寫需要進行探測的Pod對應的Kubernetes集群、命名空間、pod名稱,以及任務運行時長、任務運行時使用的tcpdump參數(有關如何使用tcpdump 參數,請參見tcpdump手冊),以及捕獲網絡流量包后存儲的保存文件名。單擊確定。
在服務網絡包探測頁面,等待創建的任務的狀態列變為Complete。
根據任務的文件所在宿主機以及文件保存路徑記錄,找到對應的Kubernetes集群宿主機,并下載指定路徑下的pcap文件,下載文件操作可以參考使用Workbench上傳或下載文件。
相關操作
刪除探測包任務記錄
登錄ASM控制臺,在左側導航欄,選擇 。
在網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇 。
在網格診斷頁面,單擊服務網絡包探測。
在服務網絡包探測頁面,找到需要刪除的任務記錄,在操作列單擊刪除。在彈出的對話框中單擊確定。
常用tcpdump參數
使用服務網絡包探測時,您可以根據想要探測的流量性質,參考以下的說明來設置tcpdump參數。
在客戶端Pod內探測Sidecar與應用程序之間的流量時,可使用如下參數。
# 將172.16.xx.xx替換為目標服務的Service IP -i lo dst port 15001 or src host 172.16.xx.xx
在客戶端Pod內探測Sidecar與目標服務之間的流量時,可使用如下參數。
# 將192.168.xx.xx替換為目標服務的Pod IP -i any host 192.168.xx.xx
在服務端Pod內探測Sidecar與應用程序之間的流量時,可使用如下參數。
-i lo host 127.0.0.6
在服務端Pod內探測Sidecar與客戶端Pod之間的流量時,可使用如下參數。
# 將192.168.xx.xx替換為客戶端Pod IP -i any host 192.168.xx.xx