网易数帆对 CIlium 容器网络的探索和实践

本文深入介绍了Cilium容器网络,包括其功能解析、数据面和控制面,以及网易轻舟在Cilium上的实践。Cilium利用eBPF技术提供高性能、安全和细粒度的流量控制。网易轻舟在实践中解决了eBPF调试复杂性和内核版本要求高等问题,实现了服务网格和容器网络的性能优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者 | 刘勤龙、黄扬

2019 年网易轻舟使用 sockmap+sk redirect 来优化轻舟 Service Mesh 的延迟,2020 年开始,我们逐步对 eBPF Service、Cilium NetworkPolicy,Cilium 容器网络进行实践,到 2021 年中旬,网易轻舟对外部客户提供了 Cilium 整体解决方案。

本文会深入介绍 Cilium,并澄清一些认知误区,然后给出网易数帆轻舟云原生团队是如何使用 Cilium 的。目前国内这方面深入解析材料较少,如果您也正在探究,希望这篇文章能给您带来帮助。

1 eBPF 容器网络探索背景

目前容器网络方案仍然呈现着百花齐放的态势,这主要是由于不同的 CNI 各有优势。开源的原生 CNI 具备较广的使用场景,即插即用。其中支持 overlay 方式的几个方案(openshift-sdn、flannel-vxlan、calico-ipip),能更好地适配 L2/L3 的网络背景,而 underlay 方式的几个方案(calico-bgp、kube-router、flannel-hostgw),则在性能上更趋近于物理网络,在小包场景中性能明显好过 overlay 类型方案。此外,许多主流云厂商基于还会自建 VPC 能力,实现 VPC-based CNI ,这类 CNI 与集群交付场景深度耦合,但也赋予了容器网络 VPC 的属性,具备更强的安全特性。

此外,业界还有大量针对 CNI 或四层负载均衡的优化措施,例如:

  • 优化封装协议,基于 vxlan 有更好的兼容性,基于 ipip 协议则能提升一定的带宽能力(部分云厂商如 AWS 并不支持 ipip 协议的包)

  • 使用 IPVS 替换 kube-proxy 解决大规模环境里,Service 带宽降低和数据路径下发时间变长

  • 使用 eBPF 技术来加速 IPVS,进一步降低延迟,提升 Service 数据路径性能

  • 利用 multus 组合 CNI 多网络平面,并利用 SR-IOV 技术做定向硬件加速

  • 虚拟网卡时使用 ipvlan 替代 vethpair,提升性能

总的来说,通过方案整合和调优的方式进一步满足了业务发展的需求,但是当前流行的 CNI 支持场景要么是不够通用,要么在高 IO 业务下存在性能问题,要么不具备安全能力,要么因 Kubernetes service 性能问题,集群规模上不去。因此我们想使用 eBPF 技术实现一套无硬件依赖的高性能、高兼容性的容器网络解决方案,这个方案解决的问题如下:

  • 解决 kube-proxy 性能问题

  • 优化数据路径降低业务端到端的延时解决高 IO 业务的性能瓶颈

  • 降低 Service Mesh 路径延迟

  • 支持链路加密和高性能安全策略

  • 支持无成本集成到主流的容器网络方案

基于 eBPF 技术做的比较好的是 Cilium,所以 2019 年末开始,我们就开始了相关的探索。

2 Cilium 功能解析

Cilium 功能解析,从功能列表,亮点功能,功能限制,三个角度进行阐述。

(1)功能列表

图片

(2)亮点功能

Cilium 支持的功能更像一个容器网络功能的复合体,其具有 Underlay 路由模式、Overlay 模式,也具有链路加密能力,此外其独特能力如下:

  1. 带宽管理

  2. 集群联邦

  3. IPVLAN 模式

  4. 七层安全策略

  5. DSR 模式保留源地址,节省带宽,避免 SNAT 端口耗尽问题

  6. Kubernetes Service 性能调优,支持 Maglev 算法

  7. XDP 性能调优,高性能南北向 Service

  8. Local Redirect Policy

  9. 流量可见性,细粒度流量控制,用于审计

  10. 高性能更能适配高带宽的网卡(eg: 50G、100G)

从功能范畴看,其亮点功能有安全、性能、功能三个方面,其有一部分亮点能力是 Cilium 社区对容器网络最佳实践的功能支持,有一部分能力是来源于 eBPF 能力的创新,所以 Cilium 是一个复合品;社区思路可以一句话概括为 “在容器网络领域,大家有的功能我也有,而且我性能更好,此外我借助 eBPF 能力从内核侧创新了大部分功能”。

(3)功能限制

Cilium 带来的技术红利让不少国内外公司去实践,国内公司来说,除网易轻舟外,我们看到腾讯、阿里、爱奇艺、携程等同行在生产环境中落地 Cilium。虽然 Cilium 通过 eBPF 给容器网络提供了创新机会,但是也带来了两点问题,这两点问题让绝大部分用户持观望态度。

 问题 1: eBPF 相比 iptables 调试难度更大,技术要求较高

iptables 存在内核已经存在几十年了,相关技术栈的开发者多,已经被广泛的接受,而 2014 年 eBPF 概念才被提出࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网易杭研

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值