服務網格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