服务网格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