● Host-Gateway 模式:
只是在主机上添加前往其它主机的pod网段的路由表而已,这种模式在同一个网段内部效率非常高。
● VXLan模式:
VXLan(Virtual Extensible LAN 虚拟可扩容局域网),是Linux本身就支持的模式,vxlan模型中的VTEP(VXLAN Tunnel End Point 虚拟隧道端点) 就是各个node上的flannel.1设备。
当使用vxlan模式工作时,会将数据包经过docker0转给flannel.1设备,该设备会查询到目标pod宿主机的flannel.1设备的mac地址,在数据包基础上加封一个vxlan头部,这里面有一个VNI标志,flannel默认为1,flannel.1将封装好的数据包交给宿主机网卡ens32处理。ens32再添加目标pod的宿主机ip和mac。
目标pod的flannel.1的mac地址和宿主机的IP地址都是由flannel进程通过etcd维护的。