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