一个历史k8s维护碰到的一些网络问题说明
最近在处理一个历史k8s 环境的调整,碰到一个问题,整理下
docker 相关
docker 1.12 之后 iptables FORWARD DROP, 解决方法是添加iptables -P FORWARD ACCEPT
,可以通过systemd 的
ExecStartPost 解决,ExecStartPost=/sbin/iptables -P FORWARD ACCEPT
linux 内核相关
这个是自己实际碰到的
- net.ipv4.ip_forward 必须开启
当然这个问题不大,我们环境是开启的,可以检查下,不然影响网络访问 - net.ipv4.tcp_tw_recycle
因为我们的网络是在nat 中的,此参数默认是0 ,不能为1,否则会有莫名的问题,可以通过netsat 或者ss 等工具查看,同时也可以结合tcpdump 分析
关于tcp_tw_recycle 参数,实际上网上也有不少介绍资料
参考资料
https://kubernetes.feisky.xyz/troubleshooting/network
https://github.com/flannel-io/flannel/pull/978
https://mohakkataria.github.io/the-curious-case-of-tcp_tw_recycle/
https://tech.ebayinc.com/engineering/a-vip-connection-timeout-issue-caused-by-snat-and-tcp-tw-recycle/