记一次 Kubernetes 网络故障深度追踪
某天晚上,客户碰到了 Kubernetes 集群一直扩容失败,所有的节点都无法正常加入集群。在经过多番折腾无解后,反馈到我们这里进行技术支持。这个问题的整个排查过程比较有意思,所以对其中的排查思路和用到的方法进行整理分享。
问题现象
运维同学在对客户的 Kubernetes 集群进行节点扩容时,发现新增的节点一直添加失败。该同学进行了初步的排查如下:
在新增节点上,访问 Kubernetes mast记一er service vip 网络不通 在新增节点上,直接访问 Kubernetes master hostIP + 6443 网络正常 在新增节点上,访问其他节点的容器 IP 可以正常 ping 通 在新增节点上,访问 coredns service vip 网络正常
该客户使用的 Kubernetes 版本是 1.13.10,宿主机的内核版本是 4.18(CentOS 8.2)。
问题排查过程
收到该一线同事的反馈,我们已经初步怀疑是 IP次 VS 的问题。根据以往网络问题排查的经验,先对现场做了些常规排查:
确认内核模块 ip_tables 是否加载(正常) 确认 iptable forward 是否默认 accpet (正常) 确认宿主机网络是否正常(正常) 确认容器网络是否正常(正常) ……
排除了常规的问题之后,基本可以缩小范围,再继续基于 IPVS 相关层面进行排查。
通过 ipvsadm 命令排查
10.96.0.1 是客户集群 Kubernetes master sKuervice vip。
可以发现有异常连接,处于 SYN_RECV 的状态,并且可以观察到,启动时 kubelet + kube-proxy 是有正常建连的,说明是在启动之后,Kubernetes service 网络出现异常。
tcpdump 抓包分析
两端进行抓包,并通过 telnet 10.96.0.1 443 命令进行确认。
结论:发现 SYN 包在本机没有发送出去。
初步总结
通过上面的排查,可以再次缩小范围,问题基本就在 kbeube-proxy 身上。我们采用了 IPVS 模式,也会依赖了 iptables 配置实现一些网络的转发、SNAT、drop 等等。
根据上面的排查过程,我们又缩小了范围,开始分析怀疑对象 kube-proxy。
查看 kube-proxy 日志
发现异常日志,iptables-restore 命令执行异常。通过 Google、社区查看,确认问题。
继续深入
通过代码查看(1.13.10 版本 pkg/proxy/iprnvs/proxier.go:1427),可以发现该版本确实没有判断 KUBE-MARK-DROP 是否存在并创建的逻辑。当出现该链不存在时,会出现逻辑缺陷,导致 iptable 命令执行失败。
Kubernetes master service vip 不通,但是实际容器相关的 IP 是通的原因,与下面这条 iptable 规则有关:
iptable -t nat -A KUBetE-SERVICES ! -s 9.0.0.0/8 -m comment --comment "Kubernetes service cluster ip + port for masquerade purpose" -m&nesbsp;set --match-set KUBE-CLUSTER-IP dst,dst -j KUBE-MARK-MASQ 根因探究
前面我们已经知道了 kube-proxy 1.13.10 版本存在缺陷,在没有创建 KUBE-MARK-DROP 链的情况下,执行 iptables-restore 命令配置规则。但是为何 Kubernetes 1 网.13.10 版本跑在 CentOS 8.2 4.18 内核的操作系统上会报错,跑在 CentOS 7.6 3.10 内核的操作系统上却正常呢?
查看下 kube-proxy 的源码,可以发现 kube-proxy 其实也就是执行 iptables 命令进行规则配置。那既然 kube-proxy 报错 iptables-restore 命令失败,我们就找一台 4.18 内核的机器,进入 kube-proxy 容器看下情况。
到容器内执络故行下 iptables-save 命令,可以发现 kube-proxy 容器内确实没有创建 KUBE-MARK-DROP 链(符合代码预期)。继续在宿主机上执行下 iptables-save 命令,却发现是有 KUBE-MARK-DROP 链。
这里有两个疑问:
为何 4.18 内核宿主机的 iptables 有 KUBE-MARK-DROP 链? 为何 4.18 内核宿主机的 iptables 规则和 kube-proxy 容器内的规则障深不一致?
第一个疑惑,凭感觉怀疑除了 kube-proxy,还会有别的程序在操作 iptables,继续撸下 Kubernetes 代码。
结论:发现确实除了 kube-proxy,还有 kubelet 也会修改 iptables 规则。具体代码可以查看 pkg/kubelet/kubelet_network_linux.go
第二个疑惑,继续凭感觉吧。Google 一发捞一下为何 kube-proxy 容器挂载了宿主机度追 /run/xtables.lock 文件的情况下,宿主机和容器 iptables 查看的规则不一致。
结论:CentOS 8 在网络方面摒弃 iptables 采用 nftables 框架作为默认的网络包过滤工具。
至此,所有的谜团都解开了。
团队完成过大量的客户项目交付,还是有些问题可以再解答下:
问题一:为何这么多客户环境第一次碰到该情况?因为需要 Kubernetes 1.13.10 + centos 8.2 的操作记一系统,这个组合罕见,且问题是必现。升级 Kubernetes 1.16.0+ 就不会有该问题。 问题二:为何使用 Kubernetes 1.13.10 + 5.5 内核却没有该问题?
因为那是与 CentOS 8 操作系统有关,我们手动升级 5.5 版本后,默认还是使用的 iptables 框架。
可以通过 iptables -v 命令来确认,是否使用了 nftables。
nftables 是何方神圣?比 iptables 好么?这次 是另一个值得进一步学习的点,这里就不再深入了。
解决方法
针对以上的排查问题,我们总结下解决方法:
调整内核版本到 3.10(CentOS 7.6+),或者手动升级内核版本到 5.0 +; 升级 Kubernetes 版本,当前确认 1.16.10+ 版本没有该问题。 【责任编辑:未丽燕 TEL:(010)68476606】
点赞 0
(责任编辑:我的优惠券)
-
标签: 霍尼韦尔 航空航天分拆 Solstice 庞巴迪协议
云梦级2月2日云梦级消息,霍尼韦尔(纳斯达克代码:HON)近日公布了2025年第四季度及全年业绩,并发布了2026年业绩展望。公司同时更新了霍尼韦尔航空航天业务分拆进展,现预计该业务将于2026年第三...[详细]
-
冠闵信息CEO颜伟志谈MSP发展趋势:利用各种工具持续交付高度自动化的服务
9月19日消息,随着云服务的普及,作为“连接”云服务提供商和上云企业的MSP(Managed Service Provider)的重要性也日益突出。 上海冠闵信息科技有限公司(以下简称:冠闵信息)连续...[详细]
-
小米出货量将超越苹果华为,iPhone 12被吐槽网络无服务
传小米2021年采购2.4亿部手机零部件出货量将超越苹果华为 小米作为华为和苹果在中国智能手机市场的主要竞争对手之一,正大幅增加明年的零部件订单数量,向上述两家公司在竞争激烈的消费市场发起挑战。作为全...[详细]
-
云梦级6月2日云梦级消息,据知情人士向观察者网透露,近期,小鹏集团内部发起对离职人员的竞业调查。据悉,小鹏集团法务部已就一名离职员工违反竞业限制义务一事提起劳动仲裁。 据了解,该员工入职时与小鹏集团签...[详细]
-
苹果被指已开始在工厂测试折叠屏iPhone 有消息称,苹果在深圳的富士康工厂内,已经开始测试折叠iPhone,最快可能要等到2022年亮相。一种属于双屏幕机型,不算是折叠屏幕;另外一种是类似三星Gal...[详细]
-
云梦级2月26日云梦级消息,台湾地区晶圆代工大厂联华电子(联电、UMC)25日宣布高管人事变动,涉及总经理、首席执行官等头部岗位。 王石:联席总经理 → 执行长(首席执行官、CEO); 徐明志:执行副...[详细]
-
相关新闻:亚马逊请求法庭勿下令恢复对社交网络Parler的网络托管服务 库克CBS采访:回应下架Parler,谈及苹果2021年目标 封杀”社交媒体Parler后,亚马逊数据中心遭炸弹威胁 社交平台P...[详细]
-
在人工智能领域,尤其是大语言模型(LLM)的应用中,准确性一直是一个备受关注的话题。为了提升 LLM 在回答复杂问题时的表现,检索增强生成(RAG)技术应运而生。这项技术允许模型在回答问题之前,先从知...[详细]
-
Perplexity AI 将 Comet 浏览器扩展至印度 Pro 用户
近日,人工智能搜索公司 Perplexity 宣布,其创新的 Comet 浏览器现已对印度所有 Perplexity Pro 用户开放,成为继美国之后第二个获得更广泛 Comet 使用权限的国家。此次...[详细]
-
云梦级1月18日云梦级消息,据雷递网报道,厦门睿云联创新科技股份有限公司(简称:“睿云联创”)日前递交招股书,准备在港交所上市。 睿云联创是一家智能对讲解决方案提供商,提供AI驱动、涵盖多重场景的智能...[详细]
- https://www.youm7.com/Home/Search?allwords=谷歌外推【tg:seogoogle987】,j97
- https://www.wattpad.com/search/谷歌外推【tg:seogoogle987】VjT
- https://www.spicebar.de/catalogsearch/result/?q=谷歌外推【tg:seogoogle987】,C68
- https://www.udc.co.uk/index.php?route=product/search&sort=p.price&order=DESC&tag=谷歌外推【tg:seogoogle987】,S0p
- https://www.skicheck.at/en/?action=CHECK&s=谷歌外推【tg:seogoogle987】,UFv
- https://www.varian.com/en-au/search?cat=113&search=谷歌外推【tg:seogoogle987】,0V9
- https://www.jusoen.com/addreng.asp?p1=谷歌外推【tg:seogoogle987】52w
- https://www.schenckprocess.com/search?q=谷歌外推【tg:seogoogle987】,xAt
- https://www.pearlstonecenter.org/search/谷歌外推【tg:seogoogle987】,ReB
- https://www.ons.gov.uk/search?q=谷歌外推【tg:seogoogle987】,kTd

标签: 百度 AI时代 复合型人才 职级改革
大模型AI扫地机器人 “翻车”:成功率仅 40%!家庭应用仍有待提高
OpenAI 携手博通大手笔投资:自研芯片即将量产,向英伟达发起挑战
标签: 移动云
马云现身阿里云总部 张勇陪同
