相关文档
context
在上篇文章VXLAN原理详解中我们了解了VXLAN的原理和动手实验,所以这篇文章就介绍一下flannel是如何管理VXLAN网络的。有了上篇的基础,理解flannel-VXLAN模式就简单多了。
概述
从flannel入门实践可知,flannel采用daemonset方式部署,flannel是一种no server架构方式,每个节点上的flannel pod只需管理本节点网络即可。
VXLAN模式原理详解
概念映射
- VTEP:对应flannel.1网卡
- VNI:1,flannel并没有使用VXLAN的多VNI的隔离功能,所有VXLAN封包全是1,所以对于整个kubernetes集群并没有网络隔离的能力。VNI=1也是flannel.1网卡名字的由来。
集群信息
之后章节的讲解就以下面的集群信息为基础,便于讲解。
节点名称 | 角色 | 版本 | 物理网卡名称 | 物理网卡IP | pod子网 |
---|---|---|---|---|---|
local-control-plane | control-plane | v1.27.3 | eth0 | 172.18.0.2 | 10.244.0.0/24 |
local-worker | worker | v1.27.3 | eth0 | 172.18.0.3 | 10.244.1.0/24 |
local-worker2 | worker | v1.27.3 | eth0 | 172.18.0.4 | 10.244.2.0/24 |
原理详解
这里安装的flannel使用集群的pod子网进行子网划分,所以安装的时候要确认pod网段要和集群pod网段保持一致。
当安装完flannel之后我们来看看集群节点上有什么变化,以local-worker节点为例,其他节点类似:
- 网卡:
- flannel会创建一个flannel.1网卡,用于管理跨节点网络通信,网卡类型就是vxlan,vni为1,内核udp端口监听在8472,ip地址为10.244.1.0/32,表示10.244.1.0/24网段。
- flannel会创建一个cni0网桥,用于管理本节点pod网络通信,ip地址为此节点pod网段的第一个ip。
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default
link/ether 76:b4:84:35:d1:50 brd