QPS最高提升91% 腾讯云TKE基于Cilium eBPF提升k8s Service性能,腾讯云tke 容器实战-ESG跨境

QPS最高提升91% 腾讯云TKE基于Cilium eBPF提升k8s Service性能,腾讯云tke 容器实战

来源网络
来源网络
2022-07-05
点赞icon 0
查看icon 1637

QPS最高提升91% 腾讯云TKE基于Cilium eBPF提升k8s Service性能,腾讯云tke 容器实战QPS高达91% 腾讯云TKE基于纤毛eBPF提升k8s服务性能前言Kubernetes已经成为集装箱管理领域事实上的标准,网络系统是Kubernetes的核心部分。随着越来越多的业务部署在Kuberne......

QPS最高提升91% 腾讯云TKE基于Cilium eBPF提升k8s Service性能,腾讯云tke 容器实战




QPS高达91% 腾讯云TKE基于纤毛eBPF提升k8s服务性能

前言

Kubernetes已经成为集装箱管理领域事实上的标准,网络系统是Kubernetes的核心部分。随着越来越多的业务部署在Kubernetes,对集装箱网络提出了一些新的要求。

1.如何提高网络的可观测性,无服务器产品的需求尤为突出。

2.如何最大限度地减少容器对网络性能的损失

上述需求冲击引入了传统的防火墙和负载平衡器技术,如iptables和IPVS。这也促使我们考虑容器网络访问链路是否可以独立于节点,从而缩短容器访问链路,提高网络性能。

EBPF是一项革命性的技术,它可以安全地在内核的许多钩子点执行程序。该技术可编程性强,无需维护内核模块,可维护性好。这项技术为满足上述要求提供了可能性。ciu[1]是基于eBPF技术的容器网络开源项目,提供网络互操作、服务负载均衡、安全性和可观测性等解决方案。

因此,腾讯云容器服务TKE基于Cilium和eBPF实现了独立网卡模式下的高性能ClusterIP服务方案。TKE致力于提供更高性能、更安全和更易于使用的集装箱网络。因此,TKE将持续关注纤毛等前沿的集装箱网络技术解决方案,未来将推出更多更完善的纤毛产品化能力。

独立网卡服务方案

TKE去年推出了新一代的容器网络方案,实现了一个Pod独占一个弹性网卡,无需经过节点网络协议栈(默认命名空间)。但是目前针对ClusterIP的kubeproxy解决方案都依赖于在节点侧的网络协议栈中设置相应的iptables规则,所以这种解决方案不再适用于独立网卡解决方案。

解决方案之一是Cilium,它提供基于eBPF的地址翻译能力,从而支持ClusterIP服务。但其原生解决方案只支持veth pair和ipvlan l3的数据平面,完全不支持Pod不通过节点网络协议栈的数据平面,因此无法原生解决独立网卡ClusterIP的接入问题。

TKE由此改造了Cilium,使其支持除了原生支持的veth和ipvlan l3之外的第三种数据平面方案,如图所示(假设pod接入服务IP为172.16.0.2)。在数据平面上,原本挂载在节点侧veth上的bpf程序挂载在pod中的独立网卡(也是弹性网卡)上。它使得Pod的网络报文在发出的时候做DNAT(目的地址转换),返回的报文在网卡收到的时候做反向DNAT,从而支持ClusterIP访问。该数据平面方案可以用作通用方案,以适应Ipvlan l2、SRIOV和其他数据平面场景。

在控制端,Cilium与TKE的VPCCNI模式(包括共享网卡模式和独立网卡模式)深度融合,用户无需对业务代码逻辑做任何修改,即可使用Cilium的功能特性。

性能比较

本文使用wrk工具对Cilium的产品化解决方案进行性能测试,测试确保客户端Pod和服务器Pod分布在不同的节点。

测试环境:TKE集群,4个CVM节点,配置为服务器5.2个大8,客户端5.2个小2

测试结果表明,基于纤毛的ClusterIP接入方案性能最佳。在短连接场景下,其QPS比共享网卡的iptables和ipvs方案分别提高了48%和74%,比全局路由的iptables和ipvs方案分别提高了62%和91%。在长连接场景下,其QPS比共享网卡的iptables和ipvs方案分别提高了33%和57%,比全局路由的iptables和ipvs方案分别提高了49%和66%。iptables的性能优于ipvs是因为测试环境中没有足够的服务,而ipvs的优势在于大量服务的场景。

产品化过程中的相关问题

TKE团队在实现Cilium产品化解决方案的过程中也发现了Cilium项目中的一些问题,相应的解决方案和Cilium支持新数据平面计划将于近日以pr的形式提交给Cilium社区。

ClusterIP自访问在独立网卡方案下被阻止

事实上,上述解决方案并不能完全解决ClusterIP访问的问题,有一种特殊的场景会阻止访问。这种场景就是Pod访问的ClusterIP,它的后端包括它自己。在这种场景下,独立网卡的Pod发快递的网络消息会直接到达IaaS层,不符合预期。

由于独立网卡Pod中实际上只有两个网络设备:loopback device (lo)和elastic网卡,一个简单的思路就是在发快递消息之前,通过bpfredirect调用直接将自接入流量重定向到loopback device。基于此,TKE团队修改了纤毛的相关bpf代码并提供了解决方案。经过测试,该方案可以解决独立网卡方案下的ClusterIP自访问问题。

缺少加载bpf程序的纤毛的名称

Cilium项目的调试中存在问题。它的bpf程序开发的比较早,很多老的工具集,比如tc,都是用在底层加载bpf代码。

老tc基于老内核版本(lt;4.15)设计上,它在加载bpf程序时忽略了bpf程序的名称,导致所有由Cilium加载的bpf程序都是无名的。这会影响对代码的理解、跟踪和调试。

为此,TKE团队结合更新的内核修改了tc工具,这样当它加载bpf程序时,它将正确地传入名字。通过这个名字,我们可以发现实际运行的是哪个bpf函数,从而提高Cilium的调试。

用法

申请Cilium支持开启ClusterIP产品化内测后,创建TKE集群时,在高级设置中开启ClusterIP增强:

总结和展望

介绍了TKE团队实现的基于Cilium和eBPF的独立网卡模式下的高性能ClusterIP服务方案,与目前基于iptables和ipv的传统网络方案相比,性能大幅提升(33%91%)。

显然,Cilium提供的功能不止于此。基于eBPF这一革命性技术,它还提供了安全性、可观察性、QoS等能力。,而提供更高性能、更安全和更易用的集装箱网络是TKE的服务目标。因此,后续TKE将积极参与纤毛社区,与社区共同推出更强更好的容器网络能力。

参考数据

[1]纤毛工程官网:[https://cilium.io/]

[2] eBPF介绍和参考指南:[https://docs.cilium.io/en/v1.10/bpf/]

[3] Kubernetes服务:【https://Kubernetes . io/docs/concepts/servicesnetworking/Service/】

[4]腾讯云容器服务TKE推出新一代零损耗容器网络。


文章推荐
Pinterest 2021年趋势预测报告,pinterest 预测
Pinterest推广如何获得更多流量和客户1,pinterest运营技巧
HUAWEI Ads简介,huawei ads是什么
paypal自动续费关闭简单教程,paypal有效期限填哪里


特别声明:以上文章内容仅代表作者本人观点,不代表ESG跨境电商观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与ESG跨境电商联系。

搜索 放大镜
韩国平台交流群
加入
韩国平台交流群
扫码进群
欧洲多平台交流群
加入
欧洲多平台交流群
扫码进群
官网询盘
加入
官网询盘
扫码进群
美国卖家交流群
加入
美国卖家交流群
扫码进群
ESG跨境专属福利分享群
加入
ESG跨境专属福利分享群
扫码进群
拉美电商交流群
加入
拉美电商交流群
扫码进群
亚马逊跨境增长交流群
加入
亚马逊跨境增长交流群
扫码进群
亚马逊跨境增长交流群
加入
亚马逊跨境增长交流群
扫码进群
拉美电商交流群
加入
拉美电商交流群
扫码进群
《TikTok综合运营手册》
《TikTok短视频运营手册》
《TikTok直播运营手册》
《TikTok全球趋势报告》
《韩国节日营销指南》
《开店大全-全球合集》
《开店大全-主流平台篇》
《开店大全-东南亚篇》
《CD平台自注册指南》
《开店大全-俄罗斯篇》
通过ESG入驻平台,您将解锁
绿色通道,更高的入驻成功率
专业1v1客户经理服务
运营实操指导
运营提效资源福利
平台官方专属优惠

立即登记,定期获得更多资讯

订阅
联系顾问

平台顾问

平台顾问 平台顾问

微信扫一扫
马上联系在线顾问

icon icon

小程序

微信小程序

ESG跨境小程序
手机入驻更便捷

icon icon

返回顶部