關於網路負載平衡器

您可以使用 IBM Cloud® Network Load Balancer for VPC (NLB) 在 VPC 同一區域內的多個伺服器實例之間分散流量。

NLB 可以接受所有三個可用性區域中的成員,但 NLB 本身位於一個特定區域中。 如需相關資訊,請參閱 多區域支援

可以為每個客戶指派埠,但在 VP 閘道層次沒有埠強制執行。

網路負載平衡器的類型

VPC 的負載平衡器概觀 中所述,有許多類型的 NLB 可用:

  • 公用-公用負載平衡器是具有向 DNS 登錄之可公開存取 IP 位址的負載平衡器。

  • 專用-只能從 VPC 網路內存取專用負載平衡器,其中用戶端位於相同的 VPC 或具有可聯繫性 (例如,透過 Direct Link及/或 Transit Gateway)。 對於專用負載平衡器,您必須具有專用子網路,且未針對子網路配置任何自訂路徑。

  • 啟用路由模式的私有- 啟用路由模式的私有 NLB 支援虛擬網路功能 (VNF) 裝置作為後端目標。 它們不需任何 NAT 即可執行直接路由,讓 VNF 裝置能以現狀檢查封包。

    系統同時支援對稱與非對稱流量,在每個區域中,多個採用路由模式的私有 NLB 可隨時透過 加權轉發,以非同步方式接收流量。 如需更多資訊,請參閱《 建立採用路由模式的網路負載平衡器 》。

  • 專用路徑-服務提供者使用「專用路徑 NLB」來安全地連接 IBM Cloud 與 IBM Cloud 專用網路上由 VPC 管理的協力廠商服務。 當您使用 專用路徑服務以 保持網路流量在專用路徑上,而不會與網際網路相交時,就需要使用專用路徑 NLB。 如需相關資訊,請參閱 專用路徑解決方案手冊

    私有路徑 NLB 只能與私有路徑服務一起使用。

開始使用

若要開始使用網路負載平衡器,請遵循下列步驟:

  1. 檢視 網路負載平衡器的已知問題
  2. 遵循特定 NLB 的指示:

如需相關資訊,請參閱 負載平衡器類型負載平衡器比較圖表

負載平衡方法

有三種負載平衡方法可用於在後端應用程式伺服器之間配送資料流量: 循環式、加權循環式及最少連線數。

最少連線數

使用此方法,在特定時間提供最少連線數的後端伺服器實例會接收下一個用戶端連線。

私有路徑 NLB 不支援最少連線方法。

ROUND-ROBIN

循環式是預設負載平衡方法。 透過此方法,負載平衡器會以輪詢方式將傳入的客戶端連線轉發至後端伺服器。 因此,所有後端伺服器都會接收到約略相等數目的用戶端連線。

加權轉遞

加權轉發功能僅適用於採用路由模式的私有 NLB。

在加權轉發機制下,NLB 會使用 IP 雜湊演算法,根據各目標所分配的權重,將封包分發至各目標。 由於加權轉發是無狀態的,因此 NLB 不會維護連線狀態。 相反地,每個封包會根據其標頭獨立進行評估,並依據當前的雜湊結果與設定的權重進行轉發。 因此,即使不存在現有的連線狀態,流量仍會被接受並轉發。

此行為可支援非對稱路由情境,包括同一區域的流量流動並非對稱的部署情境,例如使用公共 IP 位址範圍時。 另一種受支援的場景是多區域部署,在此部署中,配置了「weighted_forwarding」資源池演算法的私有 NLB 可在任何區域中以非同步方式接收流量。 對於對稱的流量流,NLB 仍會提供類似於其他池化演算法的確定性雜湊轉發機制,因此加權轉發適用於任何路由模式的 NLB 部署。

若因某個區域狀態異常,或已無任何狀態正常的後端成員,導致路由模式的 NLB 狀態異常,該 NLB 將自動撤回其相關的 VPC 入站路由廣告。 隨後,流量將被重定向至正常運作區域中處於正常運作狀態的路由模式 NLB。

舉例來說,假設有一個採用路由模式的私有 NLB,其中有兩個運作正常的後端成員:伺服器 A 的權重為 8,伺服器 B 的權重為 2。 在 1,000 個傳入封包中,約有 800 個封包被轉發至伺服器 A,200 個封包則被轉發至伺服器 B。但由於加權轉發是無狀態的,因此 NLB 不會維持連線狀態。 每個封包都會根據封包標頭資訊進行獨立評估,並依據當前的雜湊結果及設定的權重進行轉發。 這表示,屬於同一流量的封包即使透過不同的路由模式 NLB 傳入和傳回,仍能成功轉發,即使實際觀察到的分佈與配置的權重比有所不同。

此行為可實現非對稱路由情境。 如需更多資訊,請參 閱用例 8:利用非對稱路由實現多區域高可用性

加權循環式

透過此方法,負載平衡器會根據分配給各後端伺服器的權重比例,將傳入的客戶端連線轉發至這些後端伺服器。 每台伺服器預設的權重為 50,此值可自訂為 0 - 100 範圍內的任何數值。

舉例來說,若應用伺服器 A、B 和 C 的權重分別為 606030,則伺服器 A 和 B 接收的連線數量相等,而伺服器 C 接收的連線數量則為其一半。

伺服器加權值僅適用於加權循環式方法。 循環式及最少連線負載平衡方法會忽略它們。

將伺服器權重設定為「0」,表示不會將新的連線轉發至該伺服器,但現有的流量仍會繼續流通。 使用權重值 0,有助於逐步停用伺服器,並將其從服務輪替中移除。

前端接聽器及後端儲存區

前端接聽器是應用程式埠,可讓負載平衡器接收送入的要求,而後端儲存區是負載平衡器後面的應用程式伺服器。 您可以定義最多 10 個前端監聽器,並將其映射至後端應用伺服器上的後端資源池。 對於公用 NLB,指定給負載平衡器的 FQDN 和前端監聽器連接埠都會暴露在網際網路上。 會在這些埠上接收送入的使用者要求。 TCP 和 UDP 是前端監聽器和後端池的支援通訊協定。

您可以將最多 50 個虛擬伺服器執行個體附加至後端彙集。 資料流量會傳送至其指定資料埠上的每一個實例。 此資料埠無需與前端監聽埠相同。

後端池故障安全政策

在負載平衡器中編輯後端池時,您可以指定下列其中一個故障安全原則動作:

  • Forward:- 負載平衡器會將要求路由到指定的備份池。 這提供了另一套應用程式伺服器的完整故障移轉路徑。 您必須設定現有的備份池,並準備好接收流量。
  • 繞過:- 負載平衡器直接將請求傳送至成員的目標 IP 位址,完全繞過負載平衡器。 此選項通常用於特定的網路設定,例如網路負載平衡器和虛擬網路功能 (VNF) 裝置。
  • 丟棄:- 負載平衡器丟棄所有傳入的要求,用戶端不會收到任何回應。

您可以從適用的備份池清單中選擇故障安全目標。

Failsafe 目標池需求(若動作為 Forward):

  • 必須屬於同一個負載平衡器
  • 必須具有相同或相容的通訊協定 ( TCP 僅與 TCP 相容,但 HTTP 與 HTTPS 的任何組合都是相容的)

連線數上限

網路負載平衡器沒有定義預設連線數或最大連線數。 並發連線總數取決於分配的資源和網路吞吐量等因素。

網路負載平衡器的 VPC 表示法

圖 1 顯示一般網路負載平衡器設定的 VPC 表示法。 NLB 佈建在 VPC 子網路上。 若要在 NLB 上配置網路資料路徑,必須建立接聽器、儲存區及至少一個成員。 接聽器 是 NLB 接聽客戶要求的前端埠。 這些請求會轉發至與該監聽器相關聯的目標池中的目標。 儲存區 是一組目標,用來針對特定接聽器配送進入 NLB 的網路要求。 成員 是具有指定埠的後端伺服器,配置為接聽要求。

網路負載平衡器工作流程
網路負載平衡器工作流程

第 4 層負載平衡

Network Load Balancer for VPC 提供第 4 層 (稱為傳輸層) 負載平衡服務給 VPC 中使用者的伺服器。 它會根據封包標頭中的來源和目的地 IP 位址以及埠來決定資料流量的導向位置。 負載平衡器不會對封包的內容執行檢查。

由於第 4 層負載平衡需要的計算比更複雜的負載平衡 (例如第 7 層) 更少,因此 CPU 使用率和記憶體的使用會更有效率。

使用案例 1: 公用網路負載平衡器

公用 NLB 支援 Direct Server Return (DSR)。 應用程式負載平衡器不支援此功能。

圖 2 說明公用 NLB 的運作方式。 「消費者」會使用負載平衡器的 FQDN 向 DNS 登錄負載平衡器的 IP 位址。 消費者可以選擇性地查詢 DNS 伺服器。 DNS 會以負載平衡器的 IP 位址回應。 Consumer 向負載平衡器發送 TCP 請求以獲取資料,負載平衡器將請求轉發至後端目標。 目標會產生回應,並將回應直接傳送給具有 DSR 的消費者。

公共負載平衡器
公共負載平衡器

使用案例 2: 專用網路負載平衡器

只能從 VPC 網路內存取專用 NLB,其中「消費者」具有可聯繫性 (例如,透過 Direct Link及/或 Transit Gateway)。

對於專用負載平衡器,您必須具有專用子網路,且未針對子網路配置任何自訂路徑。

圖 3 說明專用 NLB 如何運作。 「消費者」會使用負載平衡器的 FQDN 來查詢 DNS,以取得負載平衡器的 IP 位址。 消費者可以選擇性地查詢 DNS 伺服器。 DNS 會以負載平衡器的 IP 位址回應。 Consumer 透過直接連結或轉接閘道向負載平衡器傳送 TCP 請求以取得資料,負載平衡器則將請求轉發至後端目標。 目標會產生回應,並使用 DSR 將回應直接傳送給「消費者」。

私有負載平衡器
私有負載平衡器

使用案例 3: 已啟用遞送模式的專用網路負載平衡器

route_mode 設為 true 的 NLB 是專用負載平衡器,僅支援虛擬網路功能 (VNF) 應用裝置 (例如防火牆) 作為後端目標。

圖 4 說明具有遞送模式的專用 NLB 如何運作。 「消費者」會使用負載平衡器的 FQDN 來查詢 DNS,以取得負載平衡器的 IP 位址。 消費者可以選擇性地查詢 DNS 伺服器。 DNS 會以負載平衡器的 IP 位址回應。 Consumer 透過直接連結或轉接閘道向負載平衡器傳送 TCP 請求,以取得資料。 負載平衡器會將要求轉遞至 VNF 裝置,然後再將要求轉遞至後端目標。 目標會產生回應,且該回應會傳回 NLB,然後再次傳送至 VNF 裝置,再回到用戶端。

啟用路由模式的私有負載平衡器
啟用路由模式的私有負載平衡器

在每個區域中,多個已啟用路由模式的私有 NLB 皆可隨時以非同步方式接收流量。 若某個路由模式的 NLB 狀態變為非正常,它將停止接收流量,而流量會自動轉移至該區域內狀態正常的路由模式 NLB。 如需更多資訊,請參閱「加權轉發」。

使用個案 4:使用網路負載平衡器的多區域高可用性

圖 5 說明如何部署 NLB 以支援多個區域。 此部署場景通常需要使用 IBM Cloud Internet Services(CIS) 中的全域負載平衡器 (GLB) 選項。

此使用個案存在 已知的限制。 具有相同實體和連接埠的兩個成員不能同時存在。 相反,您可以在相同的實例中使用不同的連接埠。

您可能想要利用 NLB 透過 DSR 獲得的高傳輸量效能 (以及低延遲)。 此外,建議您在多個區域中部署工作負載,以增加其在高可用性 (HA) 環境中的可用性。

您可以使用此部署實務範例來取得高可用性,並確保工作負載在多個可用性區域之間可用,以防負載平衡器失敗。 如果某個可用性區域中的負載平衡器發生失敗狀況,則 GLB 不再將資料流量傳送至該可用性區域。 例如,如果可用性區域 1 中發生故障,則 GLB 會將資料流量傳送至可用性區域 2 或可用性區域 3。 範例實務範例可以包括大量失敗,從單一 NLB 一直到整個可用性區域。

多可用區公網負載平衡器
多可用區網路負載平衡器

只有 Public 和 Private NLB 才需要每個區域一個 NLB 的要求。 Private Path NLB 本質上是區域性的,因此不需要為每個區域定義一個。

用例 5:私有路徑網路負載平衡器

私有路徑 NLB 將提供者與消費者之間的所有流量檢查點保留在 IBM Cloud 基礎架構內。 資料不會退出網際網路。

與其他 NLB 不同的是,Private Path 網路負載平衡器可提供區域可用性,即使選擇單一子網路,也能對區域故障具有彈性。 您無需建立多個專用路徑負載平衡器或指定多個子網路即可確保區域故障的復原能力。 您的子網路選擇僅影響與負載平衡器關聯的 IP 位址。

您只能將「專用路徑 NLB」與「專用路徑」服務搭配使用。 如需相關資訊,請參閱 關於專用路徑服務

圖 6 說明 Private Path NLB 如何支援 Private Path 服務。 「專用路徑 NLB」會向 DNS 伺服器登錄。 消費者可以選擇性地查詢 DNS 伺服器。 然後,Consumer 透過 VPE 閘道向 Private Path NLB 傳送 TCP 資料請求,Private Path NLB 再將請求轉發至目標。 反過來,目標會產生回應,該回應會透過直接伺服器回傳 (direct-server-return) 傳送至 VPE,然後再傳送至 Consumer。

私有路徑網路負載平衡器
公用負載平衡器

用例 8:利用非對稱路由實現多區域高可用性

以下設定僅適用於已啟用路由模式的私有 NLB。

圖 9 說明了私有路由模式的 NLB 如何透過非對稱路由實現多區域高可用性。 首先,使用者會透過私有連線路徑(例如 VPN、Direct Link 或 Transit Gateway )向服務供應商的樞紐 VPC 發送請求。 服務供應商的私有路由模式 NLB 會將請求透過中繼閘道傳送至輻射型 VPC 中的虛擬伺服器實例。 啟用加權轉發後,回傳流量可沿用與原始請求不同的路徑,且無需依賴先前建立的連線狀態。

舉例來說,一個請求封包可能會透過可用區域 1 中的 NLB 進入,並被轉發至輻射型 VPC 中的虛擬伺服器實例,而回應封包則會透過可用區域 2 中的 NLB 返回。 由於轉發與原始連線路徑無關,因此回應會被正確接收並轉發。 已設定的權重會持續影響流量在後端虛擬伺服器執行個體間的分配方式,同時維持多區域的高可用性。

此外,若某個區域無法使用,或路由模式網路負載平衡器(NLB)不再有任何相關聯的活躍防火牆實例,則對應的路由公告將自動撤回。 此動態路由撤銷機制可防止流量被導向至狀態異常的服務端點,並透過確保流量僅經由可正常運作的基於 VNF 的防火牆裝置進行路由,從而實現區域性高可用性 (HA)。

利用非對稱路由實現多區域高可用性
利用非對稱路由實現多區域高可用性