1.前因:
客户提供的虚机:麒麟 Linux lanxin2 4.19.90-24.4.v2101.ky10.aarch64 #
K8S 部署的flannel 使用vxlan
2.问题:
部分机器pod跨node,网络不通
3.分析过程:
1.查看flannel、cni网络启动正常
2.查看route正常
3.查看防火墙,没问题
4.tracer测试--不通
5.PING 通过tcpdump抓包, 无响应
网上查看说是云平台安全组设置的问题,由于是客户环境, 客户提供的帮助很少。只能自行想办法
4.解决办法:修改flannel type: vxlan改为ipip
kubectl edit cm -n kube-system kube-flannel-cfg
5.解说
ipip模式下的路由规则与vxlan的不同点在于,这块的网关地址是节点的。而vxlan中网关的地址是其他节点上的flannel.1设备。另外就是所使用的tunnel设备不同
这就是为啥vxlan网络不通原因,云服务器有安全组管控了网络策略
ipip路由:
vxlan路由:
注意:
# 加载ipip模式
modprobe ipip
# 查看内核支持情况
lsmod | grep ipip
后记:
flannel: host-gw模式应该也可以