本文介绍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包。
创建ASM实例。具体操作,请参见创建ASM实例。
添加ACK集群到ASM实例。具体操作,请参见添加集群到ASM实例。
创建ACK集群时,建议选择Alibaba Cloud Linux 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日 | 组件上线。 | 无影响。 |