知识卡片
Overlay路由Underlay三种跨主机网络模式的性能与灵活性权衡
内容
支持CNI的网络插件多达数十种,但跨主机通信的实现模式只有三种。Overlay 模式(见[[VXLAN如何用L2-over-L4解决VLAN的两个缺陷及其性能代价]]):不 受底层物理网络结构约束、自由度和易用性最好,代表插件Flannel-VXLAN、 Calico-IPIP、Weave;适合像OpenStack这类限制较多、不允许二层直连的虚拟化 环境;代价是封包解包带来的传输性能下降。路由模式(Underlay的一个特例): 跨主机通信直接靠路由转发,不需要隧道封包,性能比Overlay明显更好,但 要求主机要么同处一个二层子网,要么靠支持BGP的路由器连接不同子网,且 网络插件本身也要支持BGP去改路由表;代表插件Flannel-HostGateway(把 容器网络路由信息写进主机路由表,一旦主机间隔了路由器就会丢包,需要 Calico-BGP这类支持BGP的插件配合才能跨设备工作)。Underlay模式:容器和 宿主机处于同一网络、地位对等,网络接口直接和底层网络通信,最大限度 利用硬件能力,性能表现最优,代表方案MACVLAN、SR-IOV(PCIe设备虚拟化 标准,能在硬件层面直通多张网卡给容器,但部署复杂,常需MACVTAP转接、 又会带来额外性能损失);缺点是难以做到Overlay那样开箱即用的灵活性, 必须按软硬件情况定制部署,最适合真正的大型数据中心。实测数据显示: MACVLAN/SR-IOV吞吐量最高延迟最低,Flannel-VXLAN吞吐量只有前者的70% 左右、延迟高两三倍——选型时先看环境是否支持该插件,再权衡通用性/易用性 和网络I/O性能之间的取舍。
结构图:
flowchart LR
A["Overlay模式<br/>不受物理拓扑约束, 最灵活<br/>Flannel-VXLAN/Calico-IPIP"] -->|封解包开销| A1[性能最低: 约70%吞吐量, 延迟高2-3倍]
B["路由模式<br/>直接路由转发, 无需隧道<br/>Flannel-HostGateway/Calico-BGP"] -->|依赖底层网络支持BGP| B1[性能优于Overlay]
C["Underlay模式<br/>容器与宿主机同网络地位对等<br/>MACVLAN/SR-IOV"] -->|直接利用硬件| C1[性能最优, 但部署复杂难开箱即用]
参考来源
- 位置:《凤凰架构:构建可靠的大型分布式系统》第12章"容器间网络"12.2.3节
"网络插件生态"(源文件:_epub-src对应OEBPS/Text/chapter152.xhtml)
- 结论依据:原文分别说明Overlay、路由、Underlay三种跨主机网络模式的
实现原理、代表插件、适用环境和性能代价,并引用IETF论文的实测数据说明
MACVLAN/SR-IOV吞吐量最高、Flannel-VXLAN吞吐量约为其70%且延迟高2-3倍,
直接支撑本卡片的结构梳理。
- 原始内容:Overlay模式……好处在于它不受底层物理网络结构的约束……坏处
是……传输性能下降……路由模式……跨主机通信是直接通过路由转发来实现的
……Underlay模式……容器的网络接口能够直接与底层网络进行通信……MACVLAN
和SR-IOV这样的Underlay网络插件的吞吐量最高、延迟最低。