摘要:單臺(tái)服務(wù)器可以提供超過萬并發(fā)連接,萬,線速轉(zhuǎn)發(fā)能力。外網(wǎng)負(fù)載均衡轉(zhuǎn)發(fā)示意圖如下與內(nèi)網(wǎng)不同的是,外網(wǎng)流量是從公網(wǎng)進(jìn)來的。這樣上聯(lián)交換機(jī)會(huì)根據(jù)算法,將流量負(fù)載均衡到集群中的各臺(tái)服務(wù)器上。
ULB (UCloud Load Balancer)提供流量分發(fā)的能力,保證業(yè)務(wù)可擴(kuò)展和高可用。支持內(nèi)網(wǎng)和外網(wǎng)兩種場(chǎng)景,支持請(qǐng)求代理和報(bào)文轉(zhuǎn)發(fā)兩種轉(zhuǎn)發(fā)模式。下文將分別介紹ULB的的請(qǐng)求代理(下簡稱ULB7)和報(bào)文轉(zhuǎn)發(fā)模式(下簡稱ULB4)的基本架構(gòu)。
名詞
UVER:UCloud Virtual Edge Router,UCloud的公網(wǎng)流量轉(zhuǎn)發(fā)中心。UVER從業(yè)務(wù)庫中獲取所有EIP的下一跳信息,并將EIP的流量進(jìn)行封裝轉(zhuǎn)發(fā)。
內(nèi)網(wǎng)ULB4
內(nèi)網(wǎng)ULB4是基于DPDK技術(shù)自研的。單臺(tái)服務(wù)器可以提供超過3000萬并發(fā)連接,1000萬 pps,10G線速轉(zhuǎn)發(fā)能力。采用集群部署,單個(gè)集群至少4臺(tái)服務(wù)器。利用ECMP+ BGP實(shí)現(xiàn)高可用。
內(nèi)網(wǎng)ULB4采用了類似于DR的轉(zhuǎn)發(fā)模式。內(nèi)網(wǎng)負(fù)載均衡轉(zhuǎn)發(fā)示意圖如下:
如上圖,ULB4集群通過向其上聯(lián)的接入交換機(jī)宣告相同的VIP(虛擬IP),接入交換機(jī)配置了ECMP算法,能將流量負(fù)載均衡到多臺(tái)ULB服務(wù)器上,從而構(gòu)成了ULB4集群。當(dāng)ULB4集群中某些服務(wù)器發(fā)生轉(zhuǎn)發(fā)異常的時(shí)候,BGP報(bào)文轉(zhuǎn)發(fā)也會(huì)停止轉(zhuǎn)發(fā),在三秒之內(nèi)該ULB4服務(wù)器就會(huì)被剔出服務(wù)器集群,從而保證高可用,同時(shí)ULB4集群健康檢查模塊也將發(fā)出告警,使得工程師介入處理。此外同一個(gè)ULB4集群的服務(wù)器都是跨可用區(qū)分布的,保證ULB4集群跨可用區(qū)高可用。 ULB4中有模塊專門負(fù)責(zé)后端節(jié)點(diǎn)的健康檢查(目前僅支持TCP/UDP端口探測(cè)),并上報(bào)給ULB4Manager和ULB4轉(zhuǎn)發(fā)服務(wù)器。ULB4轉(zhuǎn)發(fā)服務(wù)器收到Client的業(yè)務(wù)報(bào)文后,將從狀態(tài)正常的后端節(jié)點(diǎn)中選擇一個(gè),修改目的mac后打隧道送到后端節(jié)點(diǎn),過程中其中的源IP和目的IP保持不變。ULB4模式下后端節(jié)點(diǎn)必須在LO口綁定ULB4的VIP(虛擬IP)地址,并監(jiān)聽服務(wù),才能正確處理報(bào)文,并將回包直接單播送回給Client。這是一個(gè)典型的DR過程,因此內(nèi)網(wǎng)ULB4可以直接看到Client的源IP。
外網(wǎng)ULB4
外網(wǎng)ULB4與內(nèi)網(wǎng)ULB4類似,同樣是基于DPDK技術(shù)自研的。單臺(tái)服務(wù)器可以提供超過3000萬并發(fā)連接,1000萬 pps,10G線速轉(zhuǎn)發(fā)能力。采用集群部署,單個(gè)集群至少4臺(tái)服務(wù)器。利用ECMP+ BGP實(shí)現(xiàn)高可用。同樣的,它采用了類似于DR的轉(zhuǎn)發(fā)模式。外網(wǎng)負(fù)載均衡轉(zhuǎn)發(fā)示意圖如下:
與內(nèi)網(wǎng)ULB4不同的是,外網(wǎng)流量是從公網(wǎng)進(jìn)來的。Client訪問ULB4的流量進(jìn)入U(xiǎn)Cloud POP點(diǎn),進(jìn)入U(xiǎn)VER(UCloud Virtual Edge Router)。UVER是UCloud自研的公網(wǎng)流量計(jì)算中心,能夠從業(yè)務(wù)庫中獲知所有的EIP的下一跳信息,通過BGP引流后,將EIP的流量建立隧道送到相應(yīng)的下一跳。一個(gè)ULB4的EIP會(huì)落到ULB4集群中的所有服務(wù)器上,因此UVER將這部分流量,按照一致性哈希算法送到ULB4集群各個(gè)服務(wù)器中。后續(xù)的流程與內(nèi)網(wǎng)ULB4類似。Backend節(jié)點(diǎn)中需要將ULB的EIP綁定在LO口,并監(jiān)聽服務(wù),而回程報(bào)文將直接送到UVER,并通過internet返回Client。
在外網(wǎng)ULB4中,集群健康檢查模塊將定時(shí)探測(cè)服務(wù)器的存活狀態(tài),如果發(fā)現(xiàn)有服務(wù)器有問題,則將通知UVER,將異常服務(wù)器剔除,從而保證高可用。同樣的,外網(wǎng)ULB4集群也是跨可用區(qū)高可用的。
內(nèi)網(wǎng)ULB7
ULB7基于Haproxy開發(fā),單個(gè)實(shí)例可以支持超過40w pps,2Gbps,以及至少40萬并發(fā)連接。架構(gòu)如下圖:
內(nèi)網(wǎng)ULB7采用集群部署,單個(gè)集群至少4臺(tái)服務(wù)器。租戶底層共用服務(wù)器,但是采用Docker進(jìn)行資源隔離和CPU的隔離。與ULB4采用的DR模式不同,ULB7采用的是Proxy模式(即Fullnat模式)。收到Client的請(qǐng)求之后,內(nèi)網(wǎng)ULB7將client到ULB7 IP的連接,轉(zhuǎn)化為ULB7的proxy IP到Backend(服務(wù)節(jié)點(diǎn))實(shí)際IP的連接。因此Backend(服務(wù)節(jié)點(diǎn))無法直接看到Client ip,只能通過X-Forwarded-For(HTTP模式)獲取。
內(nèi)網(wǎng)ULB7利用ECMP+ BGP實(shí)現(xiàn)高可用,內(nèi)網(wǎng)ULB7服務(wù)器通過Quagga與上聯(lián)交換機(jī)建立BGP連接。同集群下的多臺(tái)服務(wù)器,將向上聯(lián)交換機(jī)發(fā)起相同的VIP(虛擬IP)宣告。這樣上聯(lián)交換機(jī)會(huì)根據(jù)ECMP算法,將流量負(fù)載均衡到集群中的各臺(tái)服務(wù)器上。當(dāng)有服務(wù)器發(fā)生異常時(shí),三秒內(nèi)BGP會(huì)中斷,從而將故障服務(wù)器踢出集群,保證服務(wù)仍然可以正常工作。
外網(wǎng)ULB7
ULB7基于Haproxy開發(fā),單個(gè)實(shí)例可以支持超過40w pps,2Gbps,以及至少40萬并發(fā)連接。ULB利用CPU的親和性,實(shí)現(xiàn)核的隔離和資源控制。
與ULB4采用的DR模式不同,ULB7采用的是Proxy模式,也就是Fullnat模式。收到Client的請(qǐng)求之后,ULB7將client到ULB7 EIP的連接,轉(zhuǎn)化為ULB7的proxy ip(代理IP)與Backend(服務(wù)節(jié)點(diǎn))實(shí)際ip的連接。因此Backend無法直接看到Client ip。另外,節(jié)點(diǎn)健康檢查模塊是集成在ULB7進(jìn)程中的,因此不需要額外的節(jié)點(diǎn)健康檢查模塊。
同樣的,在外網(wǎng)ULB7中,集群健康檢查模塊將定時(shí)探測(cè)服務(wù)器的存活狀態(tài),如果發(fā)現(xiàn)服務(wù)器有問題,則將通知UVER,將異常服務(wù)器剔除,從而保證高可用。同樣的,外網(wǎng)ULB7集群也是跨可用區(qū)高可用的。
模式比對(duì)
相對(duì)于ULB7,ULB4轉(zhuǎn)發(fā)能力更強(qiáng),適合與追求轉(zhuǎn)發(fā)性能的場(chǎng)景。而ULB7則可以對(duì)七層數(shù)據(jù)進(jìn)行處理,可以進(jìn)行SSL的卸載,執(zhí)行域名轉(zhuǎn)發(fā)、路徑轉(zhuǎn)發(fā)等功能,并且后端節(jié)點(diǎn)不需要額外配置VIP(虛擬IP)。
實(shí)時(shí)文檔歡迎訪問: https://docs.ucloud.cn/ulb/intro/architecture
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/126137.html
摘要:參數(shù)說明本文主要描述用于創(chuàng)建類型的時(shí),與相關(guān)的說明。為時(shí)表示連接保持的時(shí)間,單位為秒,取值范圍,,表示禁用連接保持,默認(rèn)為。會(huì)話保持方式枚舉值為關(guān)閉,自動(dòng)生成,用戶自定義,默認(rèn)為。健康檢查方式為時(shí)有效,指檢查路徑。ULB 參數(shù)說明本文主要描述用于創(chuàng)建LoadBalancer 類型的Service時(shí),與ULB相關(guān)的Annotations說明。備注:目前除了外網(wǎng) ULB 綁定的 EIP 的帶寬值...
摘要:通過外網(wǎng)訪問使用提醒請(qǐng)勿修改由創(chuàng)建的及的名稱和備注,否則會(huì)導(dǎo)致異常無法訪問。通過外網(wǎng)暴露服務(wù)以后的插件,外網(wǎng)同時(shí)支持和兩種協(xié)議,下文示例中,對(duì)外暴露了三個(gè)端口,其中端口使用協(xié)議,和使用協(xié)議。是否支持多協(xié)議目前同時(shí)支持和協(xié)議。通過外網(wǎng)ULB訪問Service1、使用提醒請(qǐng)勿修改由UK8S創(chuàng)建的ULB及Vserver的名稱和備注,否則會(huì)導(dǎo)致Service異常無法訪問。除外網(wǎng)EIP外,ULB相關(guān)參...
摘要:通過內(nèi)網(wǎng)訪問使用提醒請(qǐng)勿修改由創(chuàng)建的及的名稱和備注,否則會(huì)導(dǎo)致異常無法訪問??刂苿?chuàng)建所在子網(wǎng),填寫子網(wǎng)通過內(nèi)網(wǎng)對(duì)外暴露服務(wù)代表類型,為外網(wǎng),為內(nèi)網(wǎng)為默認(rèn)值,此處可省略。通過內(nèi)網(wǎng)ULB訪問Service1、使用提醒請(qǐng)勿修改由UK8S創(chuàng)建的ULB及Vserver的名稱和備注,否則會(huì)導(dǎo)致Service異常無法訪問。除外網(wǎng)EIP外,ULB相關(guān)參數(shù)目前均不支持Update,如不確認(rèn)如何填寫,請(qǐng)咨詢UC...
摘要:介紹本章節(jié)主要為您簡要介紹中的一個(gè)重要概念即服務(wù),本文中兩者等同,以及的相關(guān)知識(shí)。在每臺(tái)的固定端口上暴露服務(wù),選擇的服務(wù)類型,集群會(huì)自動(dòng)創(chuàng)建一個(gè)類型的服務(wù),負(fù)責(zé)處理接收到的外部流量。集群外部的可以通過的方式訪問該服務(wù)。Service 介紹本章節(jié)主要為您簡要介紹 Kubernetes 中的一個(gè)重要概念 Service(即服務(wù),本文中兩者等同),以及ULB的相關(guān)知識(shí)。Service 介紹Serv...
摘要:原因解釋創(chuàng)建成功后,的將集群中的每個(gè)云主機(jī)節(jié)點(diǎn)作為自身的節(jié)點(diǎn),端口為申明的值注意不是。如何獲取源對(duì)于需要明確知道客戶端來源地址的情況,我們需要顯示地將的設(shè)置成如下修改。重新部署服務(wù)后,再用瀏覽器訪問,可以發(fā)現(xiàn)正確獲取了瀏覽器的訪問。ULB屬性修改的處理方法如沒有實(shí)際需要,請(qǐng)避免修改ULB名稱及注釋根據(jù)cloudprovider插件使用提醒,由UK8S cloudprovider創(chuàng)建的ULB不...
閱讀 3538·2023-04-25 20:09
閱讀 3739·2022-06-28 19:00
閱讀 3060·2022-06-28 19:00
閱讀 3081·2022-06-28 19:00
閱讀 3175·2022-06-28 19:00
閱讀 2880·2022-06-28 19:00
閱讀 3047·2022-06-28 19:00
閱讀 2638·2022-06-28 19:00