一、前言
flannel为container提供网络解决方案。flannel有一个基于etcd cluster的数据交换中心,每个节点上有flannel service,每个节点被分配不同的网段,每个节点上的container从该网段获取IP。一个节点之间通过一个overlay网络保证container可以互联互通。
转载自https://blog.csdn.net/cloudvtech
二、flannel的系统结构
在控制层面,flannel有一个基于etcd cluster的被动式控制中心,存储IP地址段的分配信息;所有节点上的flannel service仅仅通过更新etcd上的数据进行信息交换,没有任何主动式的相互通信。所以可以把flannel看作一个准分布式系统,所有节点上的状态都是本节点的flannel service进行维护。节点上flannel service的所有动作都是基于ectd上面数据的变化,比如节点增删等等。
在数据层面,每个节点上的flannel service都会根据本机的flannel配置进行数据包的封装或者路由的设置;flannel也会借助bridge CNI plugin或者docker engine对container进行网络设置(包括container内部网络和必要的宿主机网络)。
在数据层面,flannel支持基于路由的互联方案如host-gw、AliVPC、AWS VPC、GCE和基于封装的路由方案如UDP封装、vxlan封装、IPIP和IPSec等。
转载自https://blog.csdn.net/cloudvtech