Flannel 框架, 其支持3中后端实现:

  • VXLAN
  • host-gw
  • UDP

UDP 模式

  • 最早支持的
  • 性能差

image.png

访问 100.96.2.3, 匹配 100.96.0.0/16, 由 Flannel 创建.

TUN 设备

  • flannel0 设备是 TUN 设备 (tunnel)
    • 在三层工作的虚拟网络设备
    • 在操作系统内核和用户应用程序之间传递 IP 包
  • Flannel 进程

image.png

image.png

flanneld 如何知道这个 IP 地址是在 Node2 上的?

  • subnet

image.png

image.png

image.png

image.png

  • flanneld 都监听一个 8285 端口

image.png

image.png

不明白为啥要是子网. 是为了避免使用内网 ip 而造成的冲突?

image.png

image.png

原理就是利用 Flannel 将容器网络包封装到 UDP 中, 利用主机间的网络路由容器数据包.

性能分析:

image.png

image.png

VXLAN

virtual extensible LAN

  • 由 Linux 内核支持的网络虚拟化技术
  • 可以在内核实现类似 flannel 的封装/解封工作
  • 注意: 像在局域网里通信

image.png

  • VTEP (VXLAN tunnel end pooint, 虚拟隧道端点)

image.png

image.png

image.png

image.png

image.png

image.png

FDB (forwarding database)

image.png