配置高效能和高可用的ASM網關,可以保障業務的連續性,提高使用者體驗。本文介紹如何配置ASM網關實現業務請求的高效能和高可用。
背景資訊
ASM網關是Istio的一個重要組件,主要用於管理服務的入口和出口流量。
當建立一個ASM網關時,同時會在Kubernetes叢集的istio-system命名空間下建立一個對應的istio-ingressgateway Deployment ,這個Deployment會關聯一個CLB,相關執行個體作為CLB的後端執行個體。
如上圖所示,可以看到業務請求流量會經過的路徑。從高效能、高可用角度來說,請求經過的每個路徑都會影響實際請求的回應時間以及可用性。接下來將從CLB、ASM網關兩個關鍵節點介紹如何?業務請求的高效能和高可用。
高效能
業務多地區部署,用戶端就近訪問
ASM支援管理多個叢集,多地區情境支援地區就近訪問,以及地區感知的負載平衡。具體操作,請參見基於多叢集實現跨地區容災和流量負載平衡。
結合DNS智能解析,可以將網域名稱解析到用戶端最近的IP(也就是CLB)。
使用CLB訪問ASM網關執行個體
建立Kubernetes叢集時,如果您使用的是Terway CNI,CLB將會直接對接Gateway Pod網路。如果您使用的是Flannel CNI,則會通過Node節點的NodePort多一層網路轉寄。如果您想提高效能,推薦使用Terway。關於Terway和Flannel對比,請參見Terway與Flannel對比。
當網關流量較大,單個CLB無法滿足效能需求時,您可以配置多個CLB關聯同一個網關,從而可以使用多個CLB訪問ASM網關。具體操作,請參見使用多個CLB訪問ASM網關。
TLS加速
商業版的ASM網關支援基於Intel的MultiBuffer實現HTTPS請求加速,實測QPS提升80%的效能。具體操作,請參見啟用Multi-Buffer實現TLS加速。
高可用
業務多地區部署,多地區多活,實現跨地區容災
關於跨地區容災的具體操作,請參見基於多叢集實現跨地區容災和流量負載平衡。
CLB高可用
ASM支援配置多個CLB執行個體關聯同一網關,當其中一個CLB故障時,您可以使用另一個CLB。具體操作,請參見使用多個CLB訪問ASM網關。
ASM網關節點層級的高可用
您可以將ASM網關的Pod分布到不同的Node節點或者可用性區域,增強網關高可用性。具體操作,請參見增強ASM網關高可用性。
商務服務部署優雅上下線
商務服務對應的Deployment可以配置PreStop指令碼來實現Pod的優雅終止,避免請求失敗或丟失。具體操作,請參見方案二:配置Sidecar代理生命週期。
ASM網關的優雅上下線
使用ASM網關的優雅上下線功能後,當對網關進行擴縮容時,現有串連在一定時間內仍能正常傳輸,流量將不會有損失。具體操作,請參見使用優雅下線功能避免流量損失。