qq群的小伙伴,在昨天提了个问题,说在master节点上curl service的ip不通,故写下排查问题的过程。
首先想到的是,master节点安没安装kube-proxy,小伙伴已确认安装,并说curl了一会能通,但是很慢。
可以看到报错有timeout情况,应该只是时间过长
curl -o /dev/null -s -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download}"\n" "ip地址"
小伙伴回答超时时间为63s,看到63s我就想到ipvs tcpfin的等待时间默认为2分钟,一般会多等3s,正好达到这个timeout超时的时间。后经过确认,他用的是iptables模式,但是集群已经是k8s1.18的版本了,故换下ipvs试一下。
换完ipvs后,发现kube-proxy还有报错。
通过 kube-proxy Pod 的日志可以看到,里面有很多 Error 级别的日志信息,根据关键字 IPVS
、parseIP Error
可知,可能是由于 IPVS 模块对 IP 进行格式化导致出现问题。
因为这个问题是升级到 kubernetes 1.18 版本才出现的,所以去 Kubernetes Github 查看相关 issues,发现有人在升级 Kubernetes 版本到 1.18 后,也遇见了相同的问题,经过 issue 中 Kubernetes 维护人员讨论,分析出原因可能为新版 Kubernetes 使用的 IPVS 模块是比较新的,需要系统内核版本支持,小伙伴使用的是 CentOS 系统,内核版本为 3.10,里面的 IPVS 模块比较老旧,缺少新版 Kubernetes IPVS 所需的依赖。
将iptables模式换为ipvs,并内核升级为4.4以上,问题解决。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有