知识卡片

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网络插件的吞吐量最高、延迟最低。