Underlay网络
Underlay网络可以是由多个类型设备互联而成的物理网络,负责网络之间的数据包传输。在Underlay网络中,互联的设备可以是各类型交换机、路由器、负载均衡设备、防火墙等,但网络的各个设备之间必须通过路由协议来确保之间IP的连通性。
cni实现有: IPvlan(L2、L3)、Macvlan(L2)
Overlay网络
overlay网络是在Underlay网络上虚拟出一个虚拟网络,承载的底层网络不再需要做任何适配。在容器的世界里,物理网络只承载主机网络通信,虚拟网络只承载容器网络通信。overlay网络的任何协议都要求在发送方对报文进行包头封装,接收方剥离包头。
cni实现有:flannel-vxlan模式(L3)、flannel-UDP模式(L3)
flannel简介
flannel可以为容器提供跨节点网络服务(overlay网络),其模型为集群内所有容器使用一个网络,然后在每个主机上从该网络中划分一个子网。flannel为主机上的容器创建网络时,从子网中划分一个IP给容器。
架构简单,采用daemonset部署方式flanneld,分别管理每个节点上网络,并通过etcd或者api-server配置、加载网络配置。
flannel支持的网络模式
在flannel中网络模式定义为backend,支持以下backend:
- VXLAN:使用内核VXLAN能力封包,进行跨主机通信。
- host-gw:在每台主机上创建路由,通过路由将数据包发送过去,不需要解封包,性能会比VXLAN好,但是需要各主机之间L2层直达。
- WireGuard:使用内核WireGuard能力封包、加密,进行跨主机通信。
- UDP:通过flanneld进程发送UDP包(用户态),进行跨主机通信。由于涉及到内核态和用户态的切换,性能比VXLAN要差。
- Alloc:只负责本机子网分配,不配置路由。
- TencentCloud VPC:兼容腾讯云VPC,使用腾讯云VPC创建路由。
- IPIP:使用内核IPIP能力封包,进行跨主机通信。
- IPSec:使用内核IPSec能力封包、加密,进行跨主机通信。