新品

Kubernetes容器网络抓包实战:Wireshark排查Pod通信故障的7种场景

场景痛点:容器网络问题定位困难,Pod IP动态变化、veth pair映射关系复杂、跨节点通信路径不透明。

一、定位Pod所在节点的veth网卡

# 获取Pod的eth0接口索引
          kubectl exec -it ${PodName} -- cat /sys/class/net/eth0/iflink
          # 在节点上查找对应veth
          ip link |grep ${iflink_number}

找到对应的veth网卡(如cali3002ec233ba@if6)后,即可使用tcpdump抓包并用Wireshark分析 [^39^]。

二、7种核心抓包场景

场景抓包位置Wireshark过滤
Pod访问外网节点eth0 + cni0host ${pod_ip} and not port 53
Pod跨节点通信源/目标节点veth + 物理网卡vxlan or host ${pod_ip}
Service ClusterIP不通kube-proxy所在节点host ${cluster_ip} or host ${endpoint_ip}
DNS解析异常coredns Pod网络命名空间port 53
Ingress 502错误Ingress Controller Podhttp.response.code == 502
Calico网络策略拦截节点tunl0或vxlan.calicoicmp or tcp.flags.reset==1
Pod启动网络初始化失败Pause容器网络命名空间arp or dhcp

三、VXLAN隧道流量分析

当使用Flannel VXLAN模式时,Wireshark需要解析外层VXLAN头部和内层容器流量。设置解码器:右键UDP 4789端口 → 解码为 → VXLAN...

免费下载 Wireshark

让网络分析触手可及

Windows 版

v4.4.0
64位 / 32位
完全免费 · 无广告

macOS 版

v4.4.0
Intel / Apple Silicon
原生支持 M 系列芯片
通过包管理器安装:sudo apt install wireshark (Debian/Ubuntu)