ASM专业版结合Intel的Multi-Buffer加解密技术,可以加速Envoy中TLS的处理过程。本文介绍如何启用Multi-Buffer实现TLS加速。

前提条件

  • 已创建ASM专业版实例,且实例为1.10及以上版本。具体操作,请参见创建ASM实例
  • 已创建ACK,且集群节点的实例规格族需要支持Multi-Buffer CPU机型Intel Ice Lake。具体操作,请参见创建Kubernetes托管版集群
    以下实例规格族支持Multi-Buffer CPU机型Intel Ice Lake:
    说明 关于实例规格的详细介绍,请参见实例规格族
    规格族系列 实例规格族
    g7系列 存储增强通用型实例规格族g7se
    通用型实例规格族g7
    安全增强通用型实例规格族g7t
    c7系列 计算型实例规格族c7
    RDMA增强型实例规格族c7re
    存储增强计算型实例规格族c7se
    安全增强计算型实例规格族c7t
    r7系列 内存型实例规格族r7p
    存储增强内存型实例规格族r7se
    内存型实例规格族r7
    安全增强内存型实例规格族r7t
    其他 内存增强型实例规格族re7p
    GPU虚拟化型实例规格族vgn7i-vws
    GPU计算型实例规格族gn7i
    GPU计算型弹性裸金属服务器实例规格族ebmgn7i
    计算型超级计算集群实例规格族sccc7
    通用型超级计算集群实例规格族sccg7
  • 添加集群到ASM实例。具体操作,请参见添加集群到ASM实例

背景信息

随着网络安全技术的发展,TLS已经成为网络通信的基石。一个TLS会话的处理过程总体上可分为握手阶段和数据传输阶段。握手阶段最重要的任务是使用非对称加密技术协商出一个会话密钥,然后在数据传输阶段,使用该会话密钥对数据执行对称加密操作,再进行数据传输。

在微服务场景下,Envoy无论是作为Ingress Gateway还是作为微服务的代理,都需要处理大量的TLS请求,尤其在握手阶段执行非对称加解密的操作时,需要消耗大量的CPU资源,在大规模微服务场景下这可能会成为一个瓶颈。ASM结合Intel的Multi-Buffer加解密技术,可以加速Envoy中TLS的处理过程。

Multi-Buffer加解密技术使用Intel CPU AVX-512指令同时处理多个独立的缓冲区,即可以在一个执行周期内同时执行多个加解密的操作,成倍的提升加解密的执行效率。Multi-Buffer技术不需要额外的硬件,只需要CPU包含特定的指令集。目前阿里云在Ice Lake处理器中已经包含了最新的AVX-512指令集。Multi 加解密

操作步骤

您可以通过以下两种方式来启用Multi-Buffer功能:
  • 如果您没有创建ASM实例,您可以在创建ASM实例时选中启用基于MultiBuffer的TLS加解密性能优化。具体操作,请参见创建ASM实例
  • 如果您已创建ASM实例,您可以在ASM实例的网格信息页面启用基于MultiBuffer的TLS加解密性能优化功能。本文以已创建ASM实例场景为例。
  1. 登录ASM控制台
  2. 在左侧导航栏,选择服务网格 > 网格管理
  3. 网格管理页面单击目标ASM专业版实例的名称或操作列下的管理
  4. 基本信息页面单击右上角的功能设置
  5. 功能设置更新面板选中启用基于MultiBuffer的TLS加解密性能优化,然后单击确定
    如果您使用通用型实例规格族g7作为Kubernertes节点,启用Multi-Buffer功能后,每秒查询率(QPS)将提升75%的性能。如果您使用的是弹性裸金属节点,提升的性能将更高。

FAQ

如果在控制面启用了MultiBuffer功能,但数据面Kubernetes集群下的节点不是Intel Ice Lake的机型会怎么样?

Envoy会输出告警日志,且MultiBuffer功能将不会生效。告警日志

ASM Pro 1.10及以上版本提供了开启TLS加速时的自适应判断能力,若业务或者网关Pod被调度到的Node节点为非Intel Ice Lake机型,则不会下发对应的加速配置,TLS加速不会生效。

如果Kubernetes集群没有支持Multi-Buffer功能类型的节点,那该集群如何才能使用MultiBuffer功能?

  1. 在该Kubernetes集群添加新的节点,且节点的实例规格需要支持Multi-Buffer CPU机型Intel Ice Lake。具体操作,请参见添加已有节点
  2. 在新添加的节点上设置multibuffer-support:true标签。具体操作,请参见管理节点标签
  3. 在ASM网关的YAML配置中添加以下内容。具体操作,请参见修改入口网关服务

    通过增加节点亲和性,使Gateway实例调度到新添加的支持Multi-Buffer功能的节点上。

    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: multibuffer-support
                    operator: In
                    values:
                      - true
  4. 在ASM专业版启用MultiBuffer功能。具体操作,见上文。

    启用MultiBuffer功能后,该集群新添加的节点即可使用MultiBuffer功能,加速TLS处理过程。