pod丢包了,你会怎么查?

SRE运维进阶之路 2025-07-09 10:03:00

起因

 

CAT 发生红盘, 排查问题 查看容器速查大盘,发现某个 Pod 发生丢包。

 

故障现象

 

某个 Pod 发生丢包

 

 

根因定位

 

 

1、确定影响面

 

1)哪些 Pod 发生丢包, 单个 or 多个 Pod/Node/Cluster , 分布规律: 发现丢包的 Pod ,集中在某个 Node 上面

 

 

2)丢包的 Pod 上面业务是否受到影响:该 Node 上的 Pod 丢包已经持续了很久,没有业务反馈受到影响,本次红盘与 Pod 丢包无关

 

 

2、找共性

 

  • 摘掉业务流量观察: 丢包未减少

  • 关掉就绪/存活探针观察:丢包未减少

  • 丢包不随业务访问流量变化

 

 

3、实时观察,丢包频率

 

Pod 内执行,发现丢包每30s 加1

 

  •  
  •  
  •  
  •  
  •  
watch -n 1 cat /sys/class/net/eth0/statistics/rx_dropped# 相同的观察丢包的命令ifconfig eth0 | grep dropcat /proc/net/devnetstat -i

 

本环境 CNI 插件为 calico, 找到 Pod eth0 对应宿主机上的 veth pair

 

方法一:

 

  •  
  •  
# pod 内执行,查询 eth0 的对端 indexcat /sys/class/net/eth0/iflink

 

  •  
  •  
# 宿主机执行,根据 index 号查询 veth pair ip a | grep ${index}

 

方法二:

 

  •  
  •  
# 宿主机执行route -n | grep ${pod_ip}

 

宿主机,执行相同的丢包查询命令, 网卡名称换一下, 发现 califxxx 没有发生丢包

 

 

4、抓包

 

  •  
  •  
# 宿主机 tcpdump 抓包, 然后 wireshark 分析tcpdump -i  calif33e3f0e409 -nn -w /tmp/container.pcap

 

根据之前发现的规律 "Pod 内丢包每30s 加1" 进行排查,发现 lldp 探测很可疑

 

 

针对 lldpd 协议继续抓包, 观察 丢包时间是否吻合, 确认吻合,找到问题

 

  •  
tcpdump -i calif33e3f0e409 ether proto 0x88cc -vv

 

 

5、补充印证

 

排查问题常规命令, dmesg -T 、vim /var/log/messages、history

 

history 命令排查到,有安装过 lldpd 并启动了,后续巡检发现,仅故障主机安装过 lldpd

 

解决方案

 

容器环境用不到 lldpd, 关闭即可

 

  •  
systemctl stop lldpd

 

后续TODO

 

  • 加 Pod 丢包监控

  • 可选: lldpd 状态监控, 新增巡检项, 堡垒机 拦击 安装 lldpd 的命令等。

 

其他碎碎念

 

1、 其实 关不关 lldpd 并不影响应用,lldp 是一个二层的协议。

 

2、使用 dropwatch 没分析出来, rpm 安装的内核(5.4.xx),addr2line 和 /proc/kallsyms 解析不到函数

 

3、还是 centos7 和 5.4 的内核, systemtap 依赖的 kernel-debuginfo 没有下载包,无法进一步排查

 

4、一样, bpftrace 也是, yum 安装不了, 安装很繁琐,最后 docker 起了个 ubuntu privileged 封装了个,使用起来也有些问题, dog:下次还是用 Ubuntu 22.04.4 LTS 吧

 

5、很怪异, tcpdump 在 Pod 里面抓包时, drop 不再增加

 

 

作者丨ClayWangzhi
来源丨公众号:SRE运维进阶之路(ID:sre-k8s)
dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn
最新评论
访客 2024年04月08日

如果字段的最大可能长度超过255字节,那么长度值可能…

访客 2024年03月04日

只能说作者太用心了,优秀

访客 2024年02月23日

感谢详解

访客 2024年02月20日

一般干个7-8年(即30岁左右),能做到年入40w-50w;有…

访客 2023年08月20日

230721

活动预告