kubernetes集群中pod访问外网丢包严重问题排查:mtu值设置不对
问题描述和初步判断
k8s中部署的数据中台调用指云(open.imzhiyun.com)的sdk接口,调用了23次,成功了3次,其余20次都失败。我这边通过在宿主机上进行tcpdump抓包
抓包命令:
1. 查出调用sdk的容器名称
2. 查出该容器所在宿主机
3. 在这个宿主机上执行抓包命令,正对网卡eth0,域名是open.imzhiyun.com进行抓包:
tcpdump -i eth0 host open.imzhiyun.com -w result.cap
用工具分析下:
通过分析工具可以得知,三次握手会失败,丢包严重。
定位是容器网络问题还是宿主机网络问题
-
sdk地址检查,无白名单设置,在本地环境、长沙机房开发测试环境调用正常
-
提供一个sdk接口调用的jar包,在宿主机上进行调用,测试宿主机网络
多次执行,通过sdk接口调用jar包的运行结果得知,每次执行都能正常返回正常数据,说明宿主机网络正常。不正常的是容器对外网的网络。 -
检查容器内访问外网情况
使用nsenter工具切换到容器网络(nsenter参考文档:)