全部產品
Search
文件中心

Alibaba Cloud Service Mesh:啟用Multi-Buffer實現TLS加速

更新時間:Jun 30, 2024

在大規模微服務情境下,當您需要快速高效地處理大量並發HTTPS請求時,可以啟用Multi-Buffer加速Envoy代理對TLS(Transport Layer Security)的處理,提升資料包的加解密速度,減少網路延遲,提升整個系統的並發處理能力和通訊安全性。

前提條件

  • 已建立ASM商業版(企業版或者旗艦版)執行個體,且執行個體為1.10及以上版本。具體操作,請參見建立ASM執行個體

  • 已建立ACK叢集,且叢集節點的執行個體規格類型系列需要支援Multi-Buffer CPU機型Intel Ice Lake。具體操作,請參見建立ACK託管叢集

    展開查看執行個體規格類型系列支援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計算型ECS Bare Metal Instance執行個體規格類型系列ebmgn7i

    計算型Super Computing Cluster執行個體規格類型系列sccc7

    通用型Super Computing Cluster執行個體規格類型系列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 加解密

操作步驟

方式一:全域開啟

  1. 登入ASM控制台,在左側導覽列,選擇服務網格 > 網格管理

  2. 網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇網格執行個體 > 基本資料

  3. 基本資料頁面右側,單擊功能設定

  4. 功能設定更新面板,選中啟用基於MultiBuffer的TLS加解密效能最佳化,然後單擊確定

    如果您使用通用型執行個體規格類型系列g7作為Kubernertes節點,啟用Multi-Buffer功能後,每秒查詢率(QPS)將提升75%的效能;如果您使用的是彈性裸金屬節點,提升的效能將更高。

方式二:網關執行個體層級開啟

未建立ASM網關

  1. 登入ASM控制台,在左側導覽列,選擇服務網格 > 網格管理

  2. 網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇ASM網關 > 入口網關

  3. 入口網關頁面,單擊建立,在建立頁面的進階選項地區,選中啟用基於MultiBuffer的TLS加解密效能最佳化,進行相關配置,然後單擊建立

    關於配置項的詳細說明,請參見建立入口網關

    配置項

    說明

    支援的節點親和性標籤選擇

    根據節點標籤匹配效能最佳化的節點。

    輪詢延時(毫秒)

    該配置項通常不需要您手動調整。

    Multibuffer的原理是同時處理多個加解密操作。例如Multibuffer可以同時處理8個加解密操作,若請求數量不足8個,則會等待一段時間,直到請求達到8個才會進行處理。如果請求量比較大,很快就能滿足8個的處理條件;如果請求量比較小,可能很長時間都滿足不了8個的處理條件。此時如果您指定了輪詢延遲,當超過這個時間時,即使沒有滿足8個的處理條件,Multibuffer也會批量對已經有的請求進行加解密,減少等待時間。

已建立ASM網關

  1. 登入ASM控制台,在左側導覽列,選擇服務網格 > 網格管理

  2. 網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇ASM網關 > 入口網關

  3. 在入口網關頁面,單擊目標網關名稱,在基本概覽 > 網關詳情頁面的進階選項地區,單擊效能最佳化右側的編輯表徵圖,選中啟用基於MultiBuffer的TLS加解密效能最佳化,進行相關配置,然後單擊確認

    關於配置項的詳細說明,請參見建立入口網關

    配置項

    說明

    支援的節點親和性標籤選擇

    根據節點標籤匹配效能最佳化的節點。

    輪詢延時(毫秒)

    該配置項通常不需要您手動調整。

    Multibuffer的原理是同時處理多個加解密操作。例如Multibuffer可以同時處理8個加解密操作,若請求數量不足8個,則會等待一段時間,直到請求達到8個才會進行處理。如果請求量比較大,很快就能滿足8個的處理條件;如果請求量比較小,可能很長時間都滿足不了8個的處理條件。此時如果您指定了輪詢延遲,當超過這個時間時,即使沒有滿足8個的處理條件,Multibuffer也會批量對已經有的請求進行加解密,減少等待時間。

方式三:Pod層級開啟

使用該方式需要ASM為1.14.3及以上版本。關於升級執行個體的具體操作,請參見升級ASM執行個體

  1. 確保Pod會被調度到支援Multi-Buffer的節點上。

  2. 為Pod配置一個特殊的annotations。

    annotations樣本如下:

    proxy.istio.io/config: |
      privateKeyProvider:
        cryptomb:
          pollDelay: 10ms
  3. 重啟Pod使配置生效。

FAQ

控制面啟用了MultiBuffer功能,但資料面Kubernetes叢集下的節點不是Intel Ice Lake的機型,有什麼影響?

Envoy會輸出警示日誌,且MultiBuffer功能將不會生效。警示日誌

ASM 1.10及以上的企業版或旗艦版提供了開啟TLS加速時的自適應判斷能力,若業務或者網關Pod被調度到的Node節點為非Intel Ice Lake機型,則不會下發對應的加速配置,TLS加速不會生效。

如何添加支援MultiBuffer的節點到叢集中,並啟用MultiBuffer?

  1. 在Kubernetes叢集添加新的節點,且節點的執行個體規格需要支援Multi-Buffer CPU機型Intel Ice Lake。具體操作,請參見添加已有節點

  2. 在新添加的節點上設定multibuffer-support:true標籤。具體操作,請參見管理節點標籤

  3. 在ASM網關的YAML配置中添加以下內容。具體操作,請參見ASM網關CRD說明

    通過增加節點親和性,使Gateway執行個體調度到新添加的支援Multi-Buffer功能的節點上。

    affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
            - preference:
                matchExpressions:
                  - key: feature.node.kubernetes.io/mb-feature-enabled
                    operator: In
                    values:
                      - 'true'
              weight: 1
  4. 在ASM企業版或旗艦版執行個體中啟用MultiBuffer功能。具體操作,請參見上文啟用MultiBuffer

    啟用MultiBuffer功能後,該叢集新添加的節點即可使用MultiBuffer功能,加速TLS處理過程。

相關文檔

ASM提供了服務發現範圍配置、Sidecar資源推薦和自適應配置推送最佳化功能,協助您最佳化控制平面的配置推送效率與Sidecar的配置大小。更多資訊,請參見配置推送最佳化概述