方案概述
分布在同城多個機房內(nèi)的應(yīng)用同時對外提供服務(wù)。同城機房物理距離較小,一般小于 50 公里。同城多活架構(gòu)的難點有三個:
- 當(dāng)某機房出現(xiàn)故障,能不能做到機房級的快速切換?
- 如何實現(xiàn)非對等部署下的全局的流量負(fù)載均衡?
- 對流量的精細(xì)化管控?
常見的同城多活實現(xiàn)方式(如下圖),在這個架構(gòu)里。DNS 本身存在緩存,DNS 的域名是映射到機房的網(wǎng)關(guān) IP,網(wǎng)關(guān)又是每個機房一個局部的。很難做到機房級故障的秒級自動轉(zhuǎn)移和非對等狀態(tài)下的全局負(fù)載均衡。如果兩個機房的微服務(wù)應(yīng)用如果共用一套注冊中心,就沒辦法保證微服務(wù)調(diào)用單元內(nèi)閉環(huán)。
應(yīng)用場景
借助云原生微服務(wù)引擎 MSE 產(chǎn)品,配置注冊中心的同城容災(zāi)多活微服務(wù)應(yīng)用。提供一個經(jīng)典微服務(wù)場景在云上實現(xiàn)同城容災(zāi)的步驟,通過云原生相關(guān)產(chǎn)品在用戶應(yīng)用上云時解決高可用,同城容災(zāi),多活等需求。主要步驟:
1. 通過 CADT 快速完成應(yīng)用環(huán)境部署;
2. 同城雙 MSE 注冊中心接入;
3. MSE 網(wǎng)關(guān)接入。
方案適合場景和優(yōu)勢
- MSE 云原生網(wǎng)關(guān)
云原生網(wǎng)關(guān)默認(rèn)雙可用區(qū)部署,既使一個可用區(qū)的節(jié)點都掛了,另一個可用區(qū)的節(jié)點依舊可以正常工作。
- MSE 注冊中心
MSE 注冊中心默認(rèn)三可用區(qū)部署,即使兩個可用區(qū)的節(jié)點都掛了依然不會影響業(yè)務(wù)。
- 機房級故障的秒級自動轉(zhuǎn)移
云原生網(wǎng)關(guān)對于關(guān)聯(lián)服務(wù)的每個節(jié)點都建立了主動健康檢查的機制,默認(rèn)是 2 秒(也可以自己調(diào)整)。主動健康檢查發(fā)現(xiàn)節(jié)點不健康,則會自動剔除,健康檢查除了 TCP 的端口探測外,也支持 HTTP 的探測,通過健康檢查機制,可以實現(xiàn)機房級故障的秒級自動轉(zhuǎn)移。
- 非對等部署狀態(tài)下的全局流量負(fù)載均衡
云原生網(wǎng)關(guān)會把兩個集群的同名服務(wù)進行合并,然后在合并后的節(jié)點數(shù)量的基礎(chǔ)上實現(xiàn)多種負(fù)載均衡策略,通過這種方式可以很好的實現(xiàn)兩個機房在非對等部署狀態(tài)下的負(fù)載均衡,例如:兩個機房的同應(yīng)用各部署了 5 個節(jié)點,這個時候云原生網(wǎng)關(guān)會把兩個機房的同名服務(wù)的節(jié)點進行合并,變成 10 個。然后云原生網(wǎng)關(guān)在這 10 個中實現(xiàn)輪詢等負(fù)載均衡策略,假設(shè)機房 1 的節(jié)點掛了 4 個,還剩一個。那這時分配給機房 1 的流量會自動的從 50% 降到 10%,分配給機房 2 的流量會自動的從 50% 提升到 90%。
- 流量的精細(xì)化管控
每個集群一套注冊中心,應(yīng)用啟動的時候只像本可用區(qū)的注冊中心注冊。這樣可以保證微服務(wù)調(diào)用在可用區(qū)內(nèi)閉環(huán)。微服務(wù)調(diào)用可用區(qū)閉環(huán)以后,可以配合云原生網(wǎng)關(guān)的多種流量路由能力實現(xiàn)藍(lán)綠和灰度等發(fā)布策略。
部署架構(gòu)
架構(gòu)說明
2 個 MSE 注冊配置中心, 2 個 ACK 集群,1 個高可用 MSE 云原生網(wǎng)關(guān)。
- 每個可用區(qū)的微服務(wù)只注冊到本 AZ 的 MSE 注冊配置中心,實現(xiàn)閉環(huán)調(diào)用。
- 兩個 AZ 共享 1 個 NAT 網(wǎng)關(guān),用于容器節(jié)點拉取鏡像。
產(chǎn)品介紹
專有網(wǎng)絡(luò) VPC(Virtual Private Cloud):是用戶基于阿里云創(chuàng)建的自定義私有網(wǎng)絡(luò), 不同的專有網(wǎng)絡(luò)之間二層邏輯隔離,用戶可以在自己創(chuàng)建的專有網(wǎng)絡(luò)內(nèi)創(chuàng)建和管理云產(chǎn)品實例,比如 ECS、負(fù)載均衡、RDS 等。
容器服務(wù) Kubernetes 版 ACK:容器服務(wù) Kubernetes 版(簡稱 ACK)提供高性能且可伸縮的容器應(yīng)用管理能力,支持企業(yè)級容器化應(yīng)用的全生命周期管理。在 2021 年,ACK 成為國內(nèi)唯一連續(xù)三年入選 Gartner 公共云容器報告的產(chǎn)品,同時在 2022 年成為國內(nèi)唯一進入 Forrester 領(lǐng)導(dǎo)者象限的產(chǎn)品。ACK 整合了阿里云的虛擬化、存儲、網(wǎng)絡(luò)和安全能力,助力企業(yè)高效運行云端 Kubernetes 容器化應(yīng)用。
微服務(wù)引擎 MSE:微服務(wù)引擎 MSE 面向業(yè)界主流開源微服務(wù)項目, 提供注冊配置中心和分布式協(xié)調(diào)(原生支持 Nacos/ZooKeeper/Eureka )、云原生網(wǎng)關(guān)(原生支持 Higress/Nginx/Envoy,遵循 Ingress 標(biāo)準(zhǔn))、微服務(wù)治理和分布式任務(wù)調(diào)度能力(兼容開源 XXL-JOB/ElasticJob/K8s Job/Spring Schedule)。
云速搭 CADT(Cloud Architect Design Tools):是一款為上云應(yīng)用提供自助式云架構(gòu)管理的產(chǎn)品,顯著地降低應(yīng)用云上管理的難度和時間成本。本產(chǎn)品提供豐富的預(yù)制應(yīng)用架構(gòu)模板,同時也支持自助拖拽方式定義應(yīng)用云上架構(gòu);支持較多阿里云服務(wù)的配置和管理。用戶可以方便的對云上架構(gòu)方案的成本、部署、運維、回收進行全生命周期的管理。
NAT 網(wǎng)關(guān):阿里云 NAT 網(wǎng)關(guān)(NAT Gateway,簡稱 NAT)提供公網(wǎng) NAT 和私網(wǎng) NAT 兩種功能。公網(wǎng) NAT 網(wǎng)關(guān)通過自定義 SNAT、DNAT 規(guī)則可為云上服務(wù)器提供對外公網(wǎng)服務(wù)、及主動訪問公網(wǎng)能力;私網(wǎng) NAT 網(wǎng)關(guān)(也即 VPC NAT 網(wǎng)關(guān))可使 VPC 內(nèi)的 ECS 實例通過私網(wǎng)地址轉(zhuǎn)換服務(wù),實現(xiàn) VPC 與 VPC 之間、及 VPC 與線下 IDC 互訪能力。
彈性公網(wǎng) IP:彈性公網(wǎng) IP 是獨立的公網(wǎng) IP 資源,可與阿里云專有網(wǎng)絡(luò) VPC 類型的云服務(wù)器 ECS、NAT 網(wǎng)關(guān)、ENI 網(wǎng)卡、私網(wǎng)負(fù)載均衡 SLB 綁定,并可以動態(tài)解綁滿足靈活管理的要求。彈性公網(wǎng) IP 可為您在云上部署的網(wǎng)站提供 Internet 訪問服務(wù)。
前置條件
在進行本文操作之前,您需要完成以下準(zhǔn)備工作:
1)注冊阿里云賬號,并完成實名認(rèn)證。您可以登錄阿里云控制臺,并前往實名認(rèn)證頁面(https://account.console.aliyun.com/v2/#/authc/home)查看是否完成實名認(rèn)證。
2)購買按量付費資源,阿里云賬戶余額需要大于 100 元??紤]到部署后每小時會產(chǎn)生費用,建議賬號內(nèi)余額或者代金卷金額大于 200 元。您可以登錄阿里云控制臺,前往賬戶總覽頁面(https://usercenter2.aliyun.com/home)查看賬戶余額。
操作步驟
1. 基礎(chǔ)環(huán)境搭建
2. 在 ACK 集群中部署 Demo 應(yīng)用
2.1. 打開部署好的應(yīng)用2.2. 獲取 J 和 K 區(qū) MSE 注冊中心地址
3. 配置 MSE 網(wǎng)關(guān)及路由
3.1. 配置 MSE 網(wǎng)關(guān)
4. 多活場景驗證
4.1. 通過云原生網(wǎng)關(guān)進行路由調(diào)試
4.2. 多活驗證
4.3. 切流驗證
4.4. PTS 壓測驗證(可選)
5. 一鍵釋放資源
原文鏈接文章來源:http://www.zghlxwxcb.cn/news/detail-857325.html
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。文章來源地址http://www.zghlxwxcb.cn/news/detail-857325.html
到了這里,關(guān)于云原生最佳實踐系列2:基于 MSE 云原生網(wǎng)關(guān)同城多活的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!