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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 你知道吗,这个方案基于Cilium & eBPF来实现。在此之前,Google的GKE和Anthos也宣布基于Cilium+eBPF实现了新的容器网络数据面V2方案。但阿里云的方案会有所不同,阿里云采用Terway IPVLAN+Cilium的eBPF结合的方式。

Cilium 创始人兼CTO Thomas Graf 近日撰文《How Alibaba Clouduses Cilium for High-Performance Cloud-Native Computing?》, 本文翻译自作者的英文博客。感谢Thomas Graf以及其他更多的客户,阿里云容器服务团队随时欢迎听到更多客户反馈。

1.png

近期,阿里云团队在SIG Cloud-Provider-Alibaba的会议上介绍了阿里云容器服务的新的高性能容器网络方案并且发布了一篇博客介绍。你知道吗,这个方案基于Cilium & eBPF来实现。在此之前,Google的GKE和Anthos也宣布基于Cilium+eBPF实现了新的容器网络数据面V2方案。但阿里云的方案会有所不同,阿里云采用Terway IPVLAN+Cilium的eBPF结合的方式,文章下面我们会详细分析Terway CNI(阿里云的CNI插件)的细节实现以及在博客中的测试数据。

和其他云厂商一样,阿里云也提供了ENI(弹性网卡)的产品来暴露底层IAAS层的SDN(软件定义网络)的能力。对于K8S的Pod来说,基于它可以实现云原生的虚拟化网络,而不需要再对容器网络再做一层虚拟化来降低性能的损耗以及减少网络复杂度。

云厂商的IAAS层网络已经具备虚拟化和SDN的能力,如果底层虚拟化网络的能力直接给Pods去使用,将能显著降低性能的损耗。

对于阿里云,容器网络模型如下图所示:
2.png
(源自: https://www.alibabacloud.com/blog/how-does-alibaba-cloud-build-high-performance-cloud-native-pod-networks-in-production-environments_596590)

为了实现这个模型,CNI层面直接与阿里云的API交互来申请Pod所需的底层ENI网络资源。阿里云自研了Terway的CNI插件来实现这样的模型。在阿里云官方的博客中有详细的内部实现的介绍和遇到的挑战。这里我们重点关注在他们如何使用IPVLAN和eBPF来提升Kubernetes的Service和NetworkPolicy的性能和扩展性。

使用IPVLAN来实现更好的网络可扩展性和性能

单个ENI可以给Pod独占或者给多个Pod去共享。当ENI被多个Pod共享时,就需要对包做一些路由决策来确保Pod的流量路由到其对应的ENI上面。使用共享ENI的方式,一个ENI可以虚拟化出10-20个IP,从而可以大大增加节点上的Pod的部署密度,但是缺点是需要引入bridge或者策略路由带来额外的性能开销。后面的性能对比中就能看到具体的开销。

为了提升共享ENI的性能,IPVLAN就是一个很好的选择,IPVLAN可以将ENI很轻量的虚拟化出多个子接口来连接多个Pod到单个ENI上面。Terway的CNI通过IPVLAN来降低共享ENI的开销,并且结合Cilium在IPVLAN的网络模式下提供了高效的NetworkPolicy和Service的实现。并且将实现向Cilium官方提了 pull request.
3.png
(源自: https://www.alibabacloud.com/blog/how-does-alibaba-cloud-build-high-performance-cloud-native-pod-networks-in-production-environments_596590)

下面是不同模式的性能对比,其中还包含了基于云原生的ENI网络与基于overlay的Flannel的性能优势。
a.png
(源自: https://www.alibabacloud.com/blog/how-does-alibaba-cloud-build-high-performance-cloud-native-pod-networks-in-production-environments_596590)

你不一定要选择其中一个模型,可以根据需要对高性能的选择调度到独占ENI,对于其他的Pod使用共享ENI的模式。

**使用eBPF来解决Kubernetes Service和NetworkPolicy的扩展性问题
**
很长一段时间,Kubernetes的标准的kube-proxy的实现是采用iptables模式,由于iptables的顺序匹配,导致这种解决方案的扩展性非常受限。
5.png

(源自: https://www.alibabacloud.com/blog/how-does-alibaba-cloud-build-high-performance-cloud-native-pod-networks-in-production-environments_596590)

可以看到当服务数量增加到一定阈值后,延迟就会大幅增加。更严重的是,由于服务表项在iptables规则链中匹配的顺序不同,会导致服务访问的首包的延迟会随机的变差。

基于这些原因,所以阿里云才会基于eBPF来优化Kubernetes的可扩展性。

效果怎么样呢?下面是阿里云团队测试的性能对比。基于eBPF的方案的网络的性能和可扩展性优于kube-proxy的iptables和IPVS模式:
6.png

(源自: https://www.alibabacloud.com/blog/how-does-alibaba-cloud-build-high-performance-cloud-native-pod-networks-in-production-environments_596590)

通过eBPF简化链路,性能显著提升,相对iptables模式提升了32%,相对IPVS模式提升62%。

与Kubernetes Server类似,基于eBPF同样可以优化Kubernetes的NetworkPolicy。
7.png

(源自: https://www.alibabacloud.com/blog/how-does-alibaba-cloud-build-high-performance-cloud-native-pod-networks-in-production-environments_596590)

框框中的"BPF-agent"就是独立于Terway CNI之外运行的Cilium的agent,用于提供Kubernetes的Service和NetworkPolicy实现:

我们使用 Cilium 作为节点上的 BPF-agent 去配置容器网卡的 BPF 规则,已贡献 Terway 相关适配:https://github.com/cilium/cilium/pull/10251
8.png

(源自: https://www.alibabacloud.com/blog/how-does-alibaba-cloud-build-high-performance-cloud-native-pod-networks-in-production-environments_596590)

遗憾的是,在这一篇文章中阿里云没有提供最终的优化的对比。Cilium团队早期做过Cilium在IPVLAN和veth模式的对比博客,可以作为粗略的参考。
总结
我们非常高兴和欢迎阿里云加入和贡献到Cilium社区,如果需要了解更多可以参考如下内容:
Cilium Overview
Cilium GitHub
How Does Alibaba Cloud Build High-Performance Cloud-Native Pod Networks in Production Environments?
What is eBPF?

作者:Thomas Graf Cilium的联合创始人和CTO以及Isovalent(Cilium背后的公司)的联合创始人。在此之前,他在Red Hat和思科从事Linux内核和中断开源项目的研发工作。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2天前
|
人工智能 关系型数据库 数据中心
2024 OCP全球峰会:阿里云为代表的中国企业,引领全球AI网络合作和技术创新
今年的OCP(Open Compute Project)峰会于2024年10月14日至17日在美国加州圣何塞举行,在这场全球瞩目的盛会上,以阿里云为代表的中国企业,展示了他们在AI网络架构、液冷技术、SRv6和广域网等前沿领域的强大创新能力,持续引领全球合作与技术创新。
|
6天前
|
运维 Cloud Native 数据可视化
阿里云云原生应用组装平台BizWorks满分通过最新评估
阿里云BizWorks满分通过《基于云计算的业务组装平台能力成熟度模型》评测,获得优秀级(最高等级),广东移动联合阿里云BizWorks团队开展的组装式应用实践获得第三届“鼎新杯”数字化转型应用优秀案例一等奖。
|
5天前
|
弹性计算 Kubernetes 网络协议
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程
|
10天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 09 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
15天前
|
Ubuntu 网络安全 数据安全/隐私保护
阿里云国际版如何设置网络控制面板
阿里云国际版如何设置网络控制面板
|
13天前
|
Ubuntu Linux 应用服务中间件
阿里云国际短信业务网络超时排障指南
阿里云国际短信业务网络超时排障指南
|
11天前
|
存储 安全 算法
网络安全与信息安全:构建安全数字生活的基石
【10月更文挑战第5天】 在数字化时代,网络安全与信息安全已成为维护个人隐私、企业机密和国家安全的重要防线。本文旨在探讨网络安全漏洞的形成与防范、加密技术的应用及其重要性,以及提升公众安全意识的必要性。通过深入浅出的方式,帮助读者理解网络安全的核心要素,并强调每个人都是网络安全生态中不可或缺的一环。
37 1
|
11天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第6天】在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将探讨网络安全漏洞、加密技术和安全意识等方面的内容,以帮助读者更好地了解这些主题,并采取适当的措施保护自己的信息安全。我们将通过代码示例来演示一些常见的安全漏洞,并提供解决方案。最后,我们将强调培养良好的安全意识对于维护个人和组织的信息安全的重要性。
|
8天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:守护数字世界的坚盾
在数字化浪潮中,网络安全已成为维系现代社会正常运转的关键。本文旨在探讨网络安全漏洞的成因、加密技术的应用及安全意识的提升,以期为广大用户和技术人员提供实用的知识分享。通过对这些方面的深入剖析,我们期望能够共同构建一个更加安全可靠的数字环境。
|
9天前
|
存储 SQL 安全
网络安全与信息安全的守护之盾
本文将深入探讨网络安全漏洞、加密技术及安全意识的重要性,旨在帮助读者建立全面的网络安全知识体系。