摘要:當(dāng)負(fù)載均衡器接受到來自客戶端的請求后,會通過一系列負(fù)載均衡算法,將訪問請求路由分發(fā)到后端虛擬機(jī)服務(wù)器池進(jìn)行請求處理,同時(shí)由將處理結(jié)果返回給客戶端。支持內(nèi)網(wǎng)和外網(wǎng)兩種類型負(fù)載均衡器,滿足內(nèi)網(wǎng)數(shù)據(jù)中心及互聯(lián)網(wǎng)服務(wù)負(fù)載均衡應(yīng)用場景。
負(fù)載均衡( Load Balance )是由多臺服務(wù)器以對稱的方式組成一個(gè)服務(wù)器集合,每臺服務(wù)器都具有等價(jià)的地位,均可多帶帶對外提供服務(wù)而無須其它服務(wù)器的輔助。平臺負(fù)載均衡服務(wù)(簡稱 ULB—UCloudStack Load Balance)是基于 TCP/UDP/HTTP/HTTPS 協(xié)議將網(wǎng)絡(luò)訪問流量在多臺虛擬機(jī)間自動分配的控制服務(wù),類似于傳統(tǒng)物理網(wǎng)絡(luò)的硬件負(fù)載均衡器。
通過平臺負(fù)載均衡服務(wù)提供的虛擬服務(wù)地址,將相同數(shù)據(jù)中心、相同 VPC 網(wǎng)絡(luò)的虛擬機(jī)添加至負(fù)載均衡轉(zhuǎn)發(fā)后端,并將加入的虛擬機(jī)構(gòu)建為一個(gè)高性能、高可用、高可靠的應(yīng)用服務(wù)器池,根據(jù)負(fù)載均衡的轉(zhuǎn)發(fā)規(guī)則,將來自客戶端的請求均衡分發(fā)給服務(wù)器池中最優(yōu)的虛擬機(jī)進(jìn)行處理。
支持內(nèi)外網(wǎng)兩種訪問入口類型,分別提供 VPC 內(nèi)網(wǎng)和 EIP 外網(wǎng)的負(fù)載訪問分發(fā),適應(yīng)多種網(wǎng)絡(luò)架構(gòu)及高并發(fā)的負(fù)載應(yīng)用場景。提供四層和七層協(xié)議的轉(zhuǎn)發(fā)能力及多種負(fù)載均衡算法,支持會話保及健康檢查等特性,可自動隔離異常狀態(tài)虛擬機(jī),同時(shí)提供 SSL Offloading 及 SSL 證書管理能力,有效提高整體業(yè)務(wù)的可用性及服務(wù)能力。
ULB 支持收集并展示負(fù)載流量各種網(wǎng)絡(luò)指標(biāo)的監(jiān)控?cái)?shù)據(jù),并可根據(jù)告警模板進(jìn)行監(jiān)控報(bào)警及通知,保證業(yè)務(wù)的正常運(yùn)行。當(dāng)前 ULB 為接入的虛擬機(jī)服務(wù)池提供基于 NAT 代理的請求分發(fā)方式,在 NAT 代理模式下,所有業(yè)務(wù)的請求和返回?cái)?shù)據(jù)都必須經(jīng)過 ULB ,類似 LVS 的 NAT 工作模式。
平臺提供外網(wǎng)和內(nèi)網(wǎng)兩種類型的負(fù)載均衡服務(wù),分別對應(yīng)外網(wǎng)服務(wù)和內(nèi)網(wǎng)服務(wù)兩種場景。用戶可根據(jù)業(yè)務(wù)需求,選擇創(chuàng)建對外公開或?qū)?nèi)私有的負(fù)載均衡實(shí)例,平臺會根據(jù)負(fù)載均衡類型分別分配外網(wǎng) IP 地址或 VPC 私有網(wǎng)絡(luò)的 IP 地址,即負(fù)載均衡的服務(wù)訪問地址。
- 外網(wǎng)類型的負(fù)載均衡使用場景:部署在平臺的業(yè)務(wù)服務(wù)需要構(gòu)建高可用虛擬機(jī)集群,且需對互聯(lián)網(wǎng)提供統(tǒng)一訪問入口。部署在平臺的業(yè)務(wù)服務(wù)需要構(gòu)建高可用虛擬機(jī)集群,且需對 IDC 數(shù)據(jù)中心提供統(tǒng)一訪問入口。
- 內(nèi)網(wǎng)負(fù)載均衡使用場景:部署在平臺的業(yè)務(wù)服務(wù)需要構(gòu)建高可用虛擬機(jī)集群,且僅需對 VPC 內(nèi)網(wǎng)提供統(tǒng)一訪問入口。部署在 VPC 私有網(wǎng)絡(luò)的虛擬機(jī)集群需要對其它用戶或服務(wù)屏蔽真實(shí) IP 地址,對客戶端提供透明化服務(wù)。
用戶也可將負(fù)載均衡服務(wù)分配的 IP 地址與自有域名綁定在一起,通過域名訪問后端應(yīng)用服務(wù)。
一個(gè)提供服務(wù)的負(fù)載均衡,主要由 LB 實(shí)例( LoadBalancer )、虛擬服務(wù)器( VServer )、后端服務(wù)器( Backend Real Server )三部分組成。如架構(gòu)圖所示:

- LoadBalancer( LB ):負(fù)載均衡實(shí)例為主備高可用集群架構(gòu),可實(shí)現(xiàn)負(fù)載均衡器故障自動切換,提高接入負(fù)載均衡服務(wù)的可用性。同時(shí)結(jié)合內(nèi)外網(wǎng) IP 地址,根據(jù) VServer 配置的監(jiān)聽器,將虛擬機(jī)加入到 Backend 成為 Real Server ,以實(shí)現(xiàn)業(yè)務(wù)的流量均衡與服務(wù)容錯(cuò)。
- Virtual Server( VServer ):監(jiān)聽器,每個(gè)監(jiān)聽器是一組負(fù)載均衡的監(jiān)聽端口配置,包含協(xié)議、端口、負(fù)載算法、會話保持、連接空閑超時(shí)及健康檢查等配置項(xiàng),用于分發(fā)和處理訪問 LB 的請求。
- Backend Server Pool :后端一組虛擬機(jī)服務(wù)器池,實(shí)際處理請求的真實(shí)服務(wù)器(RealServer),即真實(shí)部署業(yè)務(wù)的虛擬機(jī)實(shí)例。
- 外網(wǎng) IP( EIP ):外網(wǎng)彈性 IP 地址,綁定至外網(wǎng)類型的 LB 實(shí)例上,對互聯(lián)網(wǎng)或 IDC 數(shù)據(jù)中心提供業(yè)務(wù)負(fù)載均衡訪問入口。
- 內(nèi)網(wǎng) IP (Private IP):內(nèi)網(wǎng) IP 地址,內(nèi)網(wǎng)類型 LB 實(shí)例提供服務(wù)的訪問地址,通常是由創(chuàng)建內(nèi)網(wǎng)負(fù)載均衡器時(shí)指定的 VPC 自動分配。
負(fù)載均衡器用于承載 VServer 及訪問入口,VServer 負(fù)責(zé)訪問入口地址的端口監(jiān)聽及請求分發(fā)。當(dāng)負(fù)載均衡器接受到來自客戶端的請求后,會通過一系列負(fù)載均衡算法,將訪問請求路由分發(fā)到后端虛擬機(jī)服務(wù)器池進(jìn)行請求處理,同時(shí)由 VServer 將處理結(jié)果返回給客戶端。
- 通過加權(quán)輪詢、最小連接數(shù)及基于源地址的負(fù)載均衡調(diào)度策略,進(jìn)行業(yè)務(wù)請求流量轉(zhuǎn)發(fā),滿足多場景業(yè)務(wù)負(fù)載需求,如加權(quán)輪詢是按照后端服務(wù)器的權(quán)重進(jìn)行請求轉(zhuǎn)發(fā),權(quán)重越大轉(zhuǎn)發(fā)的請求越多。
- 通過會話保持機(jī)制,在請求會話的生命周期內(nèi),會將來自同一個(gè)客戶端的會話轉(zhuǎn)發(fā)至同一個(gè)虛擬機(jī)進(jìn)行處理,適用于 TCP 長連接等應(yīng)用場景。
- 通過健康檢查機(jī)制,監(jiān)控 RealServer 的運(yùn)行狀況及業(yè)務(wù)可用性,確保只將流量分發(fā)至業(yè)務(wù)健康的虛擬機(jī)。當(dāng) 后端虛擬機(jī)業(yè)務(wù)不可訪問時(shí),調(diào)度器會停止向虛擬機(jī)分發(fā)負(fù)載流量;待虛擬機(jī)業(yè)務(wù)恢復(fù)正常后,會將虛擬機(jī)重新加入至 VServer 后端并分發(fā)流量至虛擬機(jī)。
負(fù)載均衡器的工作模式為 NAT 請求代理,請求和返回均由負(fù)載均衡器進(jìn)行轉(zhuǎn)發(fā)和處理,即后端 RealServer 虛擬機(jī)處理請求后,會將請求返回給負(fù)載均衡 ,由負(fù)載均衡將結(jié)果返回給客戶端。
平臺負(fù)載均衡服務(wù)提供四層和七層轉(zhuǎn)發(fā)能力,支持內(nèi)網(wǎng)和外網(wǎng)兩種網(wǎng)絡(luò)入口,在多種負(fù)載調(diào)度算法基礎(chǔ)之上支持健康檢查、會話保持、連接空閑超時(shí)、內(nèi)容轉(zhuǎn)發(fā)及 SSL Offloading 和 SSL 證書管理等功能,保證后端應(yīng)用服務(wù)的可用性和可靠性。
- 支持內(nèi)網(wǎng)和外網(wǎng)兩種類型負(fù)載均衡器,滿足 VPC 內(nèi)網(wǎng)、IDC 數(shù)據(jù)中心及互聯(lián)網(wǎng)服務(wù)負(fù)載均衡應(yīng)用場景。
- 提供四層和七層業(yè)務(wù)負(fù)載分發(fā)能力,支持基于 TCP、UDP、HTTP 及 HTTPS 協(xié)議的監(jiān)聽及請求轉(zhuǎn)發(fā)。
- 支持加權(quán)輪詢、最小連接數(shù)和基于源地址的的負(fù)載調(diào)度算法,滿足不同場景的流量負(fù)載業(yè)務(wù)。加權(quán)輪詢:基于權(quán)重的輪詢調(diào)度,負(fù)載均衡器接收到新的訪問請求后,根據(jù)用戶指定的權(quán)重,按照權(quán)重概率分發(fā)流量至各后端虛擬機(jī),進(jìn)行業(yè)務(wù)處理;最小連接數(shù):基于后端服務(wù)器最小連接數(shù)進(jìn)行調(diào)度,負(fù)載均衡器接收到新的訪問請求后,會實(shí)時(shí)統(tǒng)計(jì)后端服務(wù)器池的連接數(shù),選擇連接數(shù)最低的虛擬機(jī)建立新的連接并進(jìn)行業(yè)務(wù)處理;源地址:基于客戶端源 IP 地址的調(diào)度策略,采用哈希算法將來源于相同 IP 地址的訪問請求均轉(zhuǎn)發(fā)至一臺后端虛擬機(jī)進(jìn)行處理。
- 提供會話保持功能,在會話生命周期內(nèi),保證同一個(gè)客戶端的請求轉(zhuǎn)發(fā)至同一臺后端服務(wù)節(jié)點(diǎn)上。四層和七層分別采用不同的方式進(jìn)行會話保持 。針對 UDP 協(xié)議,基于 IP 地址保證會話保持,將來自同一 IP 地址的訪問請求轉(zhuǎn)發(fā)到同一臺后端虛擬機(jī)進(jìn)行處理,支持關(guān)閉會話 UDP 協(xié)議的會話保持;針對 HTTP 和 HTTPS 協(xié)議,提供 Cookie 植入的方式進(jìn)行會話保持,支持自動生成KEY 和自定義 KEY。自動生成 key 是由平臺自動生成 Key 進(jìn)行植入,自定義 Key 是由用戶自定義 Key 進(jìn)行植入。
- 支持 TCP、HTTP 及 HTTPS 協(xié)議的連接空閑超時(shí)配置,自動中斷在超時(shí)時(shí)間內(nèi)一直無訪問請求的連接??蛻舳讼?LB 地址發(fā)送的請求,在平臺會維護(hù)兩個(gè)連接,一個(gè)由客戶端到 LB,一個(gè)由 LB 到后端虛擬機(jī);連接空閑超時(shí)是指由客戶端到 LB 的連接空閑超時(shí)時(shí)間,若在超時(shí)周期內(nèi)沒有發(fā)送或接收任何數(shù)據(jù),將自動中斷從客戶端到 LB 的連接;默認(rèn)連接空閑超時(shí)周期為 60 秒,即在建立連接后的 60 秒內(nèi)一直沒有新的數(shù)據(jù)請求,將自動中斷連接。
- 健康檢查:支持端口檢查和 HTTP 檢查,根據(jù)規(guī)則對后端業(yè)務(wù)服務(wù)器進(jìn)行業(yè)務(wù)健康檢查,可自動檢測并隔離服務(wù)不可用的虛擬機(jī),待虛擬機(jī)業(yè)務(wù)恢復(fù)正常后,會將虛擬機(jī)重新加入至 VServer 后端并分發(fā)流量至虛擬機(jī)。端口檢查:針對四層和七層負(fù)載均衡,支持按 IP 地址 + 端口的的方式探測后端服務(wù)節(jié)點(diǎn)的健康狀況,及時(shí)剔除不健康的節(jié)點(diǎn);HTTP 檢查:針對七層負(fù)載均衡,支持按 URL 路徑和請求 HOST 頭中攜帶的域名進(jìn)行健康檢查,篩選健康節(jié)點(diǎn)。
- 內(nèi)容轉(zhuǎn)發(fā):針對七層 HTTP 和 HTTPS 協(xié)議的負(fù)載均衡,支持基于域名和 URL 路徑的流量分發(fā)及健康檢查能力,可將請求按照域名及路徑轉(zhuǎn)發(fā)至不同的后端服務(wù)節(jié)點(diǎn),提供更加精準(zhǔn)的業(yè)務(wù)負(fù)載均衡功能。
- SSL 證書:針對 HTTPS 協(xié)議,提供統(tǒng)一的證書管理服務(wù)和 SSL Offloading 能力,并支持 HTTPS 證書的單向和雙向認(rèn)證。SSL 證書部署至負(fù)載均衡,僅在負(fù)載均衡上進(jìn)行解密認(rèn)證處理,無需上傳證書到后端業(yè)務(wù)服務(wù)器,降低后端服務(wù)器的性能開銷。
- HTTP 獲取客戶端真實(shí) IP:HTTP 監(jiān)聽器支持附加 HTTP header 字段,通過 X-Forwarded-For 和 X-Real-IP 獲取客戶端真實(shí) IP 地址。
- TCP 獲取客戶端真實(shí) IP:TCP 監(jiān)聽器采用 Nginx 官方的 Proxy-Protocol 方案。使 LB TCP 監(jiān)聽收到客戶端的請求后,在轉(zhuǎn)發(fā)請求至后端服務(wù)節(jié)點(diǎn)時(shí),將客戶端的源 IP 地址封裝在 TCP 請求數(shù)據(jù)包中,發(fā)送給后端服務(wù)節(jié)點(diǎn),使服務(wù)端通過解析 TCP 數(shù)據(jù)包后即可獲取客戶端 IP 地址。Proxy Protocol是一種 Internet 協(xié)議,用于將連接信息從請求連接的源傳送到請求連接的目的地,通過為 TCP 報(bào)文添加 Proxy Protocol 報(bào)頭來獲取客戶端源 IP,因此需要后端服務(wù)節(jié)點(diǎn)做相應(yīng)的適配工作,解析 Proxy Protocol 報(bào)頭以獲取客戶端源 IP 地址。Proxy-Protocol 官方文檔詳見:https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/ 。
- 獲取監(jiān)聽器協(xié)議:HTTP 監(jiān)聽器支持附加 HTTP header 字段,通過 X-Forwarded-Proto 獲取監(jiān)聽器的協(xié)議。
- 附加 HTTP HOST:HTTP 監(jiān)聽器支持附加 HTTP header 字段,通過 Host 附加 HOST 域名至 HTTP 請求中,用于適配需要檢測 HTTP 頭 HOST 字段的業(yè)務(wù)。
- 監(jiān)控?cái)?shù)據(jù):負(fù)載均衡級別提供每秒連接數(shù)、每秒出/入流量、每秒出/入包數(shù)量的監(jiān)控及告警;VServer 級別提供連接數(shù)、HTTP 2XX、HTTP 3XX、HTTP 4XX、HTTP 5XX 等監(jiān)控?cái)?shù)據(jù)及告警。
- 安全控制:通過安全組對外網(wǎng)負(fù)載均衡的訪問進(jìn)行安全管控,僅允許安全組規(guī)則內(nèi)的流量透傳負(fù)載均衡到達(dá)后端真實(shí)服務(wù)器,保證業(yè)務(wù)負(fù)載的安全性。
負(fù)載均衡為用戶提供業(yè)務(wù)級別的高可用方案,可以將業(yè)務(wù)應(yīng)用同時(shí)部署至多個(gè)虛擬機(jī)中,通過負(fù)載均衡和 DNS 域名的方案設(shè)置流量均衡轉(zhuǎn)發(fā),實(shí)現(xiàn)多業(yè)務(wù)級別的流量負(fù)載均衡。當(dāng)大并發(fā)流量通過負(fù)載均衡訪問虛擬機(jī)業(yè)務(wù)時(shí),可通過最小連接數(shù)、加權(quán)輪詢等算法,將請求轉(zhuǎn)發(fā)給后端最健壯的虛擬機(jī)進(jìn)行處理,請通過負(fù)載均衡將請求結(jié)果返回給客戶端,保證業(yè)務(wù)可用性和可靠性。
用戶可通過智能 DNS 服務(wù),將兩個(gè)數(shù)據(jù)中心的負(fù)載均衡實(shí)例同時(shí)綁定至一個(gè)域名,使用 DNS 實(shí)現(xiàn)跨數(shù)據(jù)中心的業(yè)務(wù)容災(zāi)方案。
- 資源隔離負(fù)載均衡具有數(shù)據(jù)中心屬性,不同數(shù)據(jù)中心間負(fù)載均衡資源物理隔離;負(fù)載均衡資源在租戶間相互隔離,租戶可查看并管理賬號及子賬號下所有負(fù)載均衡資源;一個(gè)租戶內(nèi)的負(fù)載均衡資源,僅支持綁定租戶內(nèi)同數(shù)據(jù)中心的 VPC 子網(wǎng)資源;一個(gè)租戶內(nèi)的負(fù)載均衡資源,僅支持綁定租戶內(nèi)同數(shù)據(jù)中心的外網(wǎng) IP 資源;一個(gè)租戶內(nèi)的負(fù)載均衡資源,僅支持綁定租戶內(nèi)同數(shù)據(jù)中心的安全組資源。
- 網(wǎng)絡(luò)隔離不同數(shù)據(jù)中心間負(fù)載均衡資源網(wǎng)絡(luò)相互物理隔離;同數(shù)據(jù)中心負(fù)載均衡網(wǎng)絡(luò)采用 VPC 進(jìn)行隔離,不同 VPC 的負(fù)載均衡資源無法相互通信;負(fù)載均衡綁定的外網(wǎng) IP 網(wǎng)絡(luò)隔離取決于用戶物理網(wǎng)絡(luò)的配置,如不同的 Vlan 等。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/125817.html