k8s的CNI网络方案选择,flannel和calico优劣势对比
收起Calico
IPIP/BGP 2 个方案都有不错的表现,其中 IPIP 的方案在 big meg size 上的表现更好,但在 128 字节的时候表现异常,多次测试依然一样。 BGP 方案比较稳定, CPU 消耗并没有 IPIP 大,当然带宽表现也稍微差点。不过整体上来说,无论是 BGP 还是 IPIP Tunnel , Calico 这套 Overlay SDN 的解决方案成熟度和可用性都是相当不错的,是上云首选
优势:性能好,可控性高,隔离性好
劣势: 操作起来比较复杂,对 Iptables 有依赖
Flannel
IPIP/BGP 2 个方案表现一般,其中 VXLAN 方案是因为没法开 UDP Offload 导致性能偏低,其他的测试报告看来,一旦让网卡自行解 UDP 包拿到 MAC 地址,性能基本上可以达到无损,同时 CPU 占用率相当好。 UDP 方案受限于 USER Space 的解包,仅仅比 weave ( UDP )要好一点
优势: 部署简单,性能一般
劣势: 没办法实现固定 IP 的容器漂移,没法做子网隔离,对上层设计依赖程度高,没有 IPAM , IP 地址浪费,对 Docker 启动方法有绑定