省社消平台因iptables使用新backend导致flannel启动失败

省社消平台因iptables使用新backend导致flannel启动失败

早上省社消平台反馈无法登录,登录堡垒机后看到部分副本一直在重启,并且这些节点都处于同一节点

1-1

查看这几个pod日志之后发现这些pod都无法解析注册中心地址

1-2

我想是不是coredns故障导致无法解析,但发现其他子系统都可以解析注册中心地址,那这应该就和coredns无关了,这时我在控制节点请求了注册中心地址发现是正常的,并且再其他节点去请求都是正常的,但是唯独在spt-kubernetes-vice节点去请求注册中心地址超时。

1-11

1-12

这样看来故障点就比较明显了,应该是CNI插件或者是kube-proxy有问题,再查看日志时发现该spt-kubernetes-vice节点的两个组件都无日志输出,再重启相关组件后发现kube-proxy日志正常,但是flannel组件日志有报错:

ERROR: logging before flag.Parse: E0710 02:04:00.363241 1 iptables.go:120] Failed to ensure iptables rules: Error checking rule existence: failed to check rule existence: running [/sbin/iptables -t filter -C FORWARD -d 10.244.0.0/16 -j ACCEPT –wait]: exit status -1:

1-5

1-6

查看相关资料后发现好像与iptables-backend有关,iptables-backend现在有两种版本iptables-legacyiptables-nft

  • iptables-nft使用新的nftables内核框架,是未来主流方案也是netfilter社区主推的方案;
  • iptables-legacy使用老的 xtables 内核子系统,现在逐步被弃用;

查看默认iptables-backend发现为nftables,因为我的flannel版本比较低,所以对iptables-nft支持较差,所以使用update-alternatives --config iptables命令更改默认iptables-backendxtables

1-7

1-8

修改并重启对应节点flannel后查看日志,发现现在启动不报错也可以正常创建iptables规则

1-10

最后强制重启对应节点pod或者等待pod自动重启(推荐自动重启)

1-13

 

© 版权声明
THE END
喜欢就支持一下吧
点赞7赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容