排查macvlan网络方案,PodIP不通的情况 - 图1

排查macvlan网络方案,PodIP不通的情况 - 图2

排查macvlan网络方案,PodIP不通的情况 - 图3

排查macvlan网络方案,PodIP不通的情况 - 图4

排查macvlan网络方案,PodIP不通的情况 - 图5

排查macvlan网络方案,PodIP不通的情况 - 图6

排查macvlan网络方案,PodIP不通的情况 - 图7

排查macvlan网络方案,PodIP不通的情况 - 图8

vlanId不对

排查macvlan网络方案,PodIP不通的情况 - 图9
当前有两个vlan网卡,bond0-311和bond0-1509;主机所在的vlan其实为311;macvlan ippool加的vlan为1509,所以创建pod时分配出bond0-1509;而bond0-311为etcd数据被删前的网卡记录(k8s reset后,集群重建)它还在。
排查macvlan网络方案,PodIP不通的情况 - 图10

看一下1509的PODIP的连通现象,在容器内ping同主机的另一个PODIP,可以通:

主机上的POD内ping同主机PODIP

排查macvlan网络方案,PodIP不通的情况 - 图11

可以看到在pod所在主机抓包,可以在bond0-1509上抓到,bond0-311和bond0网卡不能抓到
排查macvlan网络方案,PodIP不通的情况 - 图12

主机上ping同主机PODIP

在192.168.31.20这个POD所在主机上ping这个podIP,不通:
排查macvlan网络方案,PodIP不通的情况 - 图13
同主机抓包只能在bond0看到request包:
排查macvlan网络方案,PodIP不通的情况 - 图14

主机上ping其他主机PODIP

也只能在bond0上抓到request包。

结论

说明vlan不对,主机之间的包不会被交换机转发。即跨主机通信有问题。
容器内ping 192.168.31.20没在bond0出现,主机上ping 192.168.31.20为啥会在bond0出现??

疑问

容器内的一端是eth0:
排查macvlan网络方案,PodIP不通的情况 - 图15
宿主机一端怎么查看是哪一个?
排查macvlan网络方案,PodIP不通的情况 - 图16
因为有两个:bond0-1509、bond0-311两个,怎么看veth pair对。有没有一条命令查看?