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模式应该也可以