在大規模微服務情境下,當您需要快速高效地處理大量並發HTTPS請求時,可以啟用Multi-Buffer加速Envoy代理對TLS(Transport Layer Security)的處理,提升資料包的加解密速度,減少網路延遲,提升整個系統的並發處理能力和通訊安全性。
前提條件
已建立ASM商業版(企業版或者旗艦版)執行個體,且執行個體為1.10及以上版本。具體操作,請參見建立ASM執行個體。
已建立ACK叢集,且叢集節點的執行個體規格類型系列需要支援Multi-Buffer CPU機型Intel Ice Lake。具體操作,請參見建立ACK託管叢集。
已添加叢集到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指令集。
操作步驟
方式一:全域開啟
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 。
在基本資料頁面右側,單擊功能設定。
在功能設定更新面板,選中啟用基於MultiBuffer的TLS加解密效能最佳化,然後單擊確定。
如果您使用通用型執行個體規格類型系列g7作為Kubernertes節點,啟用Multi-Buffer功能後,每秒查詢率(QPS)將提升75%的效能;如果您使用的是彈性裸金屬節點,提升的效能將更高。
方式二:網關執行個體層級開啟
未建立ASM網關
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 。
在入口網關頁面,單擊建立,在建立頁面的進階選項地區,選中啟用基於MultiBuffer的TLS加解密效能最佳化,進行相關配置,然後單擊建立。
關於配置項的詳細說明,請參見建立入口網關。
配置項
說明
支援的節點親和性標籤選擇
根據節點標籤匹配效能最佳化的節點。
輪詢延時(毫秒)
該配置項通常不需要您手動調整。
Multibuffer的原理是同時處理多個加解密操作。例如Multibuffer可以同時處理8個加解密操作,若請求數量不足8個,則會等待一段時間,直到請求達到8個才會進行處理。如果請求量比較大,很快就能滿足8個的處理條件;如果請求量比較小,可能很長時間都滿足不了8個的處理條件。此時如果您指定了輪詢延遲,當超過這個時間時,即使沒有滿足8個的處理條件,Multibuffer也會批量對已經有的請求進行加解密,減少等待時間。
已建立ASM網關
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 。
在入口網關頁面,單擊目標網關名稱,在
頁面的進階選項地區,單擊效能最佳化右側的表徵圖,選中啟用基於MultiBuffer的TLS加解密效能最佳化,進行相關配置,然後單擊確認。關於配置項的詳細說明,請參見建立入口網關。
配置項
說明
支援的節點親和性標籤選擇
根據節點標籤匹配效能最佳化的節點。
輪詢延時(毫秒)
該配置項通常不需要您手動調整。
Multibuffer的原理是同時處理多個加解密操作。例如Multibuffer可以同時處理8個加解密操作,若請求數量不足8個,則會等待一段時間,直到請求達到8個才會進行處理。如果請求量比較大,很快就能滿足8個的處理條件;如果請求量比較小,可能很長時間都滿足不了8個的處理條件。此時如果您指定了輪詢延遲,當超過這個時間時,即使沒有滿足8個的處理條件,Multibuffer也會批量對已經有的請求進行加解密,減少等待時間。
方式三:Pod層級開啟
使用該方式需要ASM為1.14.3及以上版本。關於升級執行個體的具體操作,請參見升級ASM執行個體。
確保Pod會被調度到支援Multi-Buffer的節點上。
為Pod配置一個特殊的annotations。
annotations樣本如下:
proxy.istio.io/config: | privateKeyProvider: cryptomb: pollDelay: 10ms
重啟Pod使配置生效。
FAQ
控制面啟用了MultiBuffer功能,但資料面Kubernetes叢集下的節點不是Intel Ice Lake的機型,有什麼影響?
Envoy會輸出警示日誌,且MultiBuffer功能將不會生效。
ASM 1.10及以上的企業版或旗艦版提供了開啟TLS加速時的自適應判斷能力,若業務或者網關Pod被調度到的Node節點為非Intel Ice Lake機型,則不會下發對應的加速配置,TLS加速不會生效。
如何添加支援MultiBuffer的節點到叢集中,並啟用MultiBuffer?
在Kubernetes叢集添加新的節點,且節點的執行個體規格需要支援Multi-Buffer CPU機型Intel Ice Lake。具體操作,請參見添加已有節點。
在新添加的節點上設定
multibuffer-support:true
標籤。具體操作,請參見管理節點標籤。在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
在ASM企業版或旗艦版執行個體中啟用MultiBuffer功能。具體操作,請參見上文啟用MultiBuffer。
啟用MultiBuffer功能後,該叢集新添加的節點即可使用MultiBuffer功能,加速TLS處理過程。
相關文檔
ASM提供了服務發現範圍配置、Sidecar資源推薦和自適應配置推送最佳化功能,協助您最佳化控制平面的配置推送效率與Sidecar的配置大小。更多資訊,請參見配置推送最佳化概述。