Cilium 首次集成国内云服务,阿里云 ENI 被纳入新版本特性

Cilium 首次集成国内云服务,阿里云 ENI 被纳入新版本特性

作者:清弦
阿里云技术专家,主要负责 ACK 容器网络设计与研发,阿里云开源 CNI 项目 Terway 主要维护者,Cilium Alibaba IPAM 负责人

背景


近期 Cilium 社区发布了 Cilium 1.10 正式版本,在这个版本中正式支持阿里云 ENI 模式,阿里云也是国内首家支持 Cilium 的云厂商。

Cilium 首次集成国内云服务,阿里云 ENI 被纳入新版本特性

Cilium 是一个基于 eBPF 的高性能容器网络项目,提供网络、可观测性、安全三方面的解决方案。

Cilium 首次集成国内云服务,阿里云 ENI 被纳入新版本特性

Cilium 本身支持 Overlay 网络模式部署在各种云平台或者自建的集群上,但是这种非云原生的网络模式会带来不小的性能损耗。阿里巴巴云原生容器服务团队向 Cilium 社区贡献了阿里云 ENI 模式,使得在阿里云上可以以云原生方式运行 Cilium 。

云原生容器服务团队贡献 PR
https://github.com/cilium/cilium/pull/15160
https://github.com/cilium/cilium/pull/15512

架构


AlibabaCloud Operator 是集群内的网络资源控制器,承担对网络资源(ENI、ENIIP)统一管理、分配工作。

Cilium 首次集成国内云服务,阿里云 ENI 被纳入新版本特性

Cilium agent 通过 list-watch 机制、CNI 请求对 Operator 分配的地址资源进行配置、管理。

这种架构将所有阿里云 OpenAPI 调用集中到 Operator 中,可以有效的进行 API 请求管理,避免大规模集群下 API 流控问题。

Cilium 首次集成国内云服务,阿里云 ENI 被纳入新版本特性

基于 Cilium 1.10 + 阿里云 ENI 的高性能云原生网络


Cilium 使用了 EBPF 内核技术对传统数据链路进行了优化,绕过了Conntrack 模块,对容器场景下网络性能有了非常大的提高。在阿里云上使用 Cilium 1.10 + 阿里云 ENI 模式有多种按照方式,请阅读 Cilium 社区的安装文档[1]。

为了使云上用户享受到更加出色的网络性能,阿里云自研的开源 CNI 插件 Terway [2] 与 Cilium 实现了更好的结合。Terway 支持使用阿里云的弹性网卡来实现的容器网络。使得容器网络和虚拟机网络在同一个网络平面,在不同主机之间容器网络通信时不会有封包等损失,不依赖于分布式路由也能让集群规模不受限于路由条目限制。目前,Terway IPvlan 模式已经深度集成 Cilium 。

使用 Terway IPvlan

使用 Terway 模式非常简单,在阿里云容器服务控制台,创建集群中选择网络插件 Terway ,并勾选 IPvlan 即可启用。

Cilium 首次集成国内云服务,阿里云 ENI 被纳入新版本特性

IPvlan + eBPF 性能对比:


测试环境:

  • 2 节点 ecs . g5ne . 4xlarge 机型
  • 对比测试

Terway 独占 ENI ( ipvs )
Terway 共享 ENI IPvlan ( ebpf )
Terway 共享 ENI veth ( ipvs )
Flanne l vxlan ( ipvs )

Netperf 性能对比 TCP_CRR

测试场景:使用 netperf 测试 Pod 间通讯

Cilium 首次集成国内云服务,阿里云 ENI 被纳入新版本特性

上图数字越大性能越好

通过测试,可以看到基于 IPvlan 的 Pod 网络延迟较低,在 TCP_CRR 的测试中性能指标和独占 ENI 模式相当。

wrk + nginx 性能对比

测试场景:采用 wrk 压测 nginx 的 Service 的方式,采用 100 字节的小页面模拟常见的集群中微服务通信。

Cilium 首次集成国内云服务,阿里云 ENI 被纳入新版本特性

上图数字越小性能越好

Cilium 首次集成国内云服务,阿里云 ENI 被纳入新版本特性

上图数字越大性能越好

Terway IPvlan 模式在 wrk- nginx 的短连接测试中相对于传统的 Terway veth 策略路由方式:

  • ClusterIP 吞吐增加 277% , 延迟降低 50%。

总结


随着 Kubernetes 已经成为容器调度的事实标准,企业上云的首选。容器网络做为应用的底层基础资源,得到越来越多的关注。

在阿里云上我们默认提供高性能的 Terway 网络插件 [3] 帮助用户充分使用云原生的网络资源。Cilium 作为社区新兴的容器网络方案,在可观测性、安全性上有许多出色的特性,本次增加的阿里云ENI模式,可以帮助 Cilium 的用户充分使用阿里云上的网络资源。我们也将继续与社区同行,推动高性能的云原生网络实现规模化落地。

安装文档:_https://docs.cilium.io/en/v1.10/gettingstarted/alibabacloud-eni/#k8s-alibabacloud-eni_

Terway: https://www.alibabacloud.com/help/zh/doc-detail/97467.htm
Terway 网络插件:_ https://help.aliyun.com/document_detail/86500.html_

上一篇:关于在.Net开发中使用Sqlite的版本选择问题


下一篇:TextField的scrollV属性,文字滚动