Sidecar Acceleration using eBPF

本文介绍Sidecar Acceleration using eBPF的组件信息、使用限制、使用说明、FAQ和变更记录。

组件介绍

服务网格Sidecar模式下业务注入Sidecar之后,业务请求路径需要经过Outbound、Inbound Sidecar,请求Latency会少量增加。Sidecar Acceleration using eBPF组件基于eBPF的Sockops技术,可以实现同节点下Sidecar和Sidecar之间、同Pod下业务容器和Sidecar之间的TCP网络通信加速。

使用限制

  • ASM实例版本需为1.10及以上。

  • ACK集群节点内核的版本需为5.10及以上。建议使用Alibaba Cloud Linux 3。

    说明

    若ACK集群下的节点使用不同类型的OS,则仅内核版本为5.10及以上的节点会生效。内核版本不满足条件的节点(包括Virtual Node)不会生效,但无其他不良影响。

  • 仅支持ACK托管版和ACK专有版集群。

使用说明

启用Sidecar Acceleration using eBPF组件的步骤如下。

重要

Sidecar Acceleration using eBPF组件开启后,ACK集群中注入Sidecar的业务Pod下,业务Container和Sidecar之间的网络通信在环回接口LO设备上抓不到PSH包。同节点下Sidecar和Sidecar之间的通信也抓不到PSH包。

  1. 创建ASM实例。具体操作,请参见创建ASM实例

  2. 添加ACK集群到ASM实例。具体操作,请参见添加集群到ASM实例

    创建ACK集群时,建议选择Alibaba Cloud Linux 3作为节点镜像。

  3. 登录容器服务管理控制台,在目标集群运维管理 > 组件管理页面的网络页签下,开启Sidecar Acceleration using eBPF组件。具体操作,请参见管理组件

    该组件开启生效是ACK集群范围。如果ASM管理了多个ACK集群,则需要分别在各个集群开启。

FAQ

如何判断加速是否生效?

该组件基于eBPF sockops实现,若加速生效作用于TCP连接后,该连接上的TCP请求将不再经过TCP/IP协议栈。您可以通过使用tcpdump等抓包工具,观察连接上是否存在PSH包来判断加速是否生效。

加速效果和实际的业务场景以及部署环境相关,因此本文不提供该加速组件开启前后的性能对比。

该加速组件是否会对未注入Sidecar的其他Pod之间的请求生效?

不会生效。加速组件仅作用于同节点下和Sidecar相关的请求,即同节点下APP与Sidecar之间、Sidecar与Sidecar之间、Sidecar与APP之间相关的TCP请求。因此对未注入Sidecar的各个业务Pod之间的请求不会生效。

在该加速组件开启之前,对于业务服务已存在的TCP连接,加速是否对该连接生效?

不会生效。组件开启之前已存在的TCP连接,在组件开启之后,该TCP连接上的请求不会有加速效果。

变更记录

2023年09月

版本号

变更时间

变更内容

变更影响

1.0.15

2023年09月20日

组件上线。

无影响。