k8s网络模型设计的一个基础原则是:每个Pod都拥有一个独立的IP地址,而且假定所有Pod都在一个可以直接连通的、扁平的网络空间中。

所以不管他们是否运行在同一个Node(宿主机中),都要求他们可以直接通过对方的IP进行访问。 设计这个原则的原因是,用户不需要额外考虑如何建立Pod之间的连接,也不需要考虑将容器端口映射到主机端口等问题。

Tips

  1. 查看一个网卡是否开启了混杂模式
1
2
3
4
[root@centos ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet 172.17.36.2  netmask 255.255.240.0  broadcast 172.17.47.255
        ether 00:16:3e:03:f4:76  txqueuelen 1000  (Ethernet)

当输出包含PROMISC时,表明该网络接口处于混杂模式。

1
2
ifconfig eth0 promisc # 启用网卡的混杂模式
ifconfig eth0 -promisc # 关闭网卡的混杂模式

将网络设备加入Linux bridge后,会自动进入混杂模式。