kubernetes 的网络模型是假定所有Pod都在一个可以直接联通的扁平网路空间。所以运行kubernetes需要先实现这个假定,将容器的互相访问打通。
image.png

同一个Pod多个容器通信

借助pause容器,Pod 中的容器共享其网络栈,即一个pod中的容器,处于一个”本地状态”,相互可见,部分资源互斥(端口)

各个Pod通信

借助 Overlay Network完成

同一主机下的pod通信

如图,同一主机下面的不同Pod 通过Docker0 网桥进行通信

跨主机下的Pod通信

  1. 每个Pod 会在etcd 中注册自己的服务信息,包括那

Flannel

为集群中不同节点主机上的docker容器具有全集群唯一的虚拟IP

Pod和service之间

各个节点的IPtables,新版本支持LVS做转发