如果nova绑定了多个port,在allow overlap ip 应用场景中,可能出现一个虚拟机上有多个同一个租户网段的port,在添加port的时候可能会出现以下问题
- 出现多个同样的默认路由,eth0 的优先级甚至比eth1更低
这样就会导致eth0 ip 不通
解决方式关闭 NetworkManager , 测试的时候发现,每重启一次 NetworkManager 都会导致路由多一条。
而且这个eth1 metric 优先级比 eth0更高的话,对k8s的pod影响很大,会导致kubelet 注册的endpoint 发生变化,但是实际上kubelet又是监听在eth0上,就会导致无法访问(exec , log)node节点上的pod
- eth1 和 eth0 默认是无法同时都可以ping通的
抓包可以看到,访问eth1 ip的话, 进来的包和回复的包的mac地址不一致
基于 策略路由 添加源进源出解决
cat /etc/iproute2/rt_tables
reserved values
200 e0
201 e1
255 local
254 main
253 default
0 unspec
local
1 inr.ruhep
cat /etc/rc.local
#!/bin/bash
touch /var/lock/subsys/local
ip route add 172.30.30.0/24 dev eth0 src 172.30.30.245 table e0
ip route add default via 172.30.30.1 dev eth0 table e0
ip rule add from 172.30.30.245/32 table e0
ip rule add to 172.30.30.245/32 table e0
ip route add 172.30.30.0/24 dev eth1 src 172.30.30.188 table e1
ip route add default via 172.30.30.1 dev eth1 table e1
ip rule add from 172.30.30.188/32 table e1
ip rule add to 172.30.30.188/32 table e1
网友评论