配置高性能和高可用的ASM網(wǎng)關(guān)
配置高性能和高可用的ASM網(wǎng)關(guān),可以保障業(yè)務(wù)的連續(xù)性,提高用戶體驗(yàn)。本文介紹如何配置ASM網(wǎng)關(guān)實(shí)現(xiàn)業(yè)務(wù)請求的高性能和高可用。
背景信息
ASM網(wǎng)關(guān)是Istio的一個重要組件,主要用于管理服務(wù)的入口和出口流量。
當(dāng)創(chuàng)建一個ASM網(wǎng)關(guān)時,同時會在Kubernetes集群的istio-system命名空間下創(chuàng)建一個對應(yīng)的istio-ingressgateway Deployment ,這個Deployment會關(guān)聯(lián)一個CLB,相關(guān)實(shí)例作為CLB的后端實(shí)例。
如上圖所示,可以看到業(yè)務(wù)請求流量會經(jīng)過的路徑。從高性能、高可用角度來說,請求經(jīng)過的每個路徑都會影響實(shí)際請求的響應(yīng)時間以及可用性。接下來將從CLB、ASM網(wǎng)關(guān)兩個關(guān)鍵節(jié)點(diǎn)介紹如何實(shí)現(xiàn)業(yè)務(wù)請求的高性能和高可用。
高性能
業(yè)務(wù)多地域部署,客戶端就近訪問
ASM支持管理多個集群,多地域場景支持地域就近訪問,以及區(qū)域感知的負(fù)載均衡。具體操作,請參見基于多集群實(shí)現(xiàn)跨地域容災(zāi)和流量負(fù)載均衡。
結(jié)合DNS智能解析,可以將域名解析到客戶端最近的IP(也就是CLB)。
使用CLB訪問ASM網(wǎng)關(guān)實(shí)例
創(chuàng)建Kubernetes集群時,如果您使用的是Terway CNI,CLB將會直接對接Gateway Pod網(wǎng)絡(luò)。如果您使用的是Flannel CNI,則會通過Node節(jié)點(diǎn)的NodePort多一層網(wǎng)絡(luò)轉(zhuǎn)發(fā)。如果您想提高性能,推薦使用Terway。關(guān)于Terway和Flannel對比,請參見Terway與Flannel對比。
當(dāng)網(wǎng)關(guān)流量較大,單個CLB無法滿足性能需求時,您可以配置多個CLB關(guān)聯(lián)同一個網(wǎng)關(guān),從而可以使用多個CLB訪問ASM網(wǎng)關(guān)。具體操作,請參見使用多個CLB訪問ASM網(wǎng)關(guān)。
TLS加速
商業(yè)版的ASM網(wǎng)關(guān)支持基于Intel的MultiBuffer實(shí)現(xiàn)HTTPS請求加速,實(shí)測QPS提升80%的性能。具體操作,請參見啟用Multi-Buffer實(shí)現(xiàn)TLS加速。
高可用
業(yè)務(wù)多地域部署,多地域多活,實(shí)現(xiàn)跨地域容災(zāi)
關(guān)于跨地域容災(zāi)的具體操作,請參見基于多集群實(shí)現(xiàn)跨地域容災(zāi)和流量負(fù)載均衡。
CLB高可用
ASM支持配置多個CLB實(shí)例關(guān)聯(lián)同一網(wǎng)關(guān),當(dāng)其中一個CLB故障時,您可以使用另一個CLB。具體操作,請參見使用多個CLB訪問ASM網(wǎng)關(guān)。
ASM網(wǎng)關(guān)節(jié)點(diǎn)級別的高可用
您可以將ASM網(wǎng)關(guān)的Pod分布到不同的Node節(jié)點(diǎn)或者可用區(qū),增強(qiáng)網(wǎng)關(guān)高可用性。具體操作,請參見增強(qiáng)ASM網(wǎng)關(guān)高可用性。
業(yè)務(wù)服務(wù)部署優(yōu)雅上下線
業(yè)務(wù)服務(wù)對應(yīng)的Deployment可以配置PreStop腳本來實(shí)現(xiàn)Pod的優(yōu)雅終止,避免請求失敗或丟失。具體操作,請參見方案二:配置Sidecar代理生命周期。
ASM網(wǎng)關(guān)的優(yōu)雅上下線
使用ASM網(wǎng)關(guān)的優(yōu)雅上下線功能后,當(dāng)對網(wǎng)關(guān)進(jìn)行擴(kuò)縮容時,現(xiàn)有連接在一定時間內(nèi)仍能正常傳輸,流量將不會有損失。具體操作,請參見使用優(yōu)雅下線功能避免流量損失。