內部直通式網路負載平衡器是一種區域負載平衡器,可讓您透過內部 IP 位址執行服務及調度服務資源,這類 IP 位址只能透過內部虛擬機器 (VM) 執行個體存取。
本頁面將說明如何使用多個轉送規則,且每個規則都使用相同的 IP 位址。如要瞭解內部直通式網路負載平衡器的一般資訊,請參閱「內部直通式網路負載平衡器總覽」。
使用內部轉送規則時,您最多可在十個轉送規則中使用共用內部 IP 位址。如要分享 IP 位址,請將 IP 位址的用途設為 SHARED_LOADBALANCER_VIP
。您可以使用 TCP
或 UDP
做為轉送規則通訊協定,並為轉送規則指派最多五個通訊埠,或是指定 --ports=ALL
來使用所有通訊埠。如要使用 L3_DEFAULT
通訊協定,您必須使用 --ports=ALL
選項的所有通訊埠。
您可以透過通訊協定和通訊埠的專屬組合,執行下列操作:
使用
TCP
通訊協定,為每個轉送規則建立 50 個專屬的 TCP 通訊埠。如果轉送規則已設定為使用
TCP
通訊協定和所有通訊埠,則使用TCP
通訊協定的其他轉送規則無法使用相同的共用 IP 位址。使用
UDP
通訊協定,為每個轉送規則建立 50 個專屬的 UDP 通訊埠。如果轉送規則已設定為使用
UDP
通訊協定和所有通訊埠,則使用UDP
通訊協定的其他轉送規則無法使用相同的共用 IP 位址。建立 50 個 TCP 和 UDP 通訊埠的專屬組合,每個轉送規則都使用
TCP
或UDP
通訊協定。參照常見的後端服務 (單一負載平衡器) 或多個後端服務 (共用相同 IP 位址的多個負載平衡器)。
使用
L3_DEFAULT
通訊協定設定轉送規則時,請使用所有通訊埠。IP 位址只能有一個L3_DEFAULT
轉送規則,必要時可與其他 TCP 和 UDP 轉送規則共用。
如果轉送規則使用不同的通訊協定,您也必須有兩個不同的後端服務。單一內部直通式網路負載平衡器只適用於 TCP 或 UDP 流量 (不能同時適用),因為它只有一個後端服務,只使用其中一種通訊協定。
轉送規則的決策矩陣
請參考下表設計部署作業。
單一內部直通式網路負載平衡器
單一後端服務只支援 TCP 或 UDP,無法同時支援兩者。
如果您需要多個轉接規則,請使用 ⌈total number of ports / 5⌉
公式計算所需的轉接規則數量,其中 ⌈⌉
是天花板 (最小整數) 函式,表示無條件進位至最接近的整數。
舉例來說,假設您需要在負載平衡器的一個 IP 位址上使用 26 個 TCP 通訊埠,如果您不想使用 --ports=ALL
建立單一轉寄規則,則必須建立六個轉寄規則,因為 26 / 5 = 5 with a remainder of 1
。
預期的前端設定 | 所需轉送規則數量 | --purpose=SHARED_LOADBALANCER_VIP 標記
IP 位址必須使用 |
轉送規則通訊埠規格 |
---|---|---|---|
一個 IP 位址,所有通訊埠的流量 | 一個轉送規則 | 否 | --ports=ALL |
一個 IP 位址,特定通訊埠的流量 |
五個或以下的通訊埠: 六個以上通訊埠: |
五個或以下的通訊埠:否 六個以上:是 |
將 --ports 設為一組最多五個連續或不連續的通訊埠編號。 |
多個 IP 位址,所有通訊埠的流量 | 每個 IP 位址一個轉送規則 | 否 | --ports=ALL |
多個 IP 位址,特定通訊埠上的流量 | 每個 IP 位址至少有一個轉送規則 |
如果每個 IP 位址使用五個或更少的通訊埠:否 如果每個 IP 位址使用六個以上的通訊埠:是 |
將 --ports 設為最多五個連續或不連續的通訊埠編號。 |
兩個內部直通式網路負載平衡器
如果您有兩個內部直通式網路負載平衡器,則可以有兩個後端服務,其中一個後端服務用於 TCP 流量,另一個後端服務用於 UDP 流量。
如果您需要多個轉寄規則,請使用以下公式計算所需的轉寄規則數量,其中 ⌈⌉
是上限 (最小整數) 函式,表示無條件進位至最接近的整數:
⌈total number of TCP ports / 5⌉ ⌈total number of UDP ports / 5⌉
舉例來說,假設您需要 26 個 TCP 通訊埠和 12 個 UDP 通訊埠。您必須建立九個轉送規則:
26 / 5 = 5 with a remainder of 1
,因此您需要為 TCP 通訊埠設定六個轉送規則。12 / 5 = 2 with a remainder of 2
,因此您需要為 UDP 通訊埠設定三個轉送規則。
預期的前端設定 | 所需轉送規則數量 | --purpose=SHARED_LOADBALANCER_VIP 標記
IP 位址必須使用 |
轉送規則通訊埠規格 |
---|---|---|---|
一個 IP 位址,所有通訊埠的流量 | 兩個轉送規則:一個用於 TCP,另一個用於 UDP | 因為 TCP 轉送規則和 UDP 轉送規則必須共用單一 IP 位址:是 | --ports=ALL |
一個 IP 位址,特定通訊埠的流量 |
五個以下的 TCP 通訊埠和五個以下的 UDP 通訊埠: TCP 和 UDP 各一個轉送規則 六個以上的 TCP 或 UDP 通訊埠:多個轉送規則,每個轉送規則支援一個通訊協定和五個以下的通訊埠 |
是 | 將 --ports 設為最多五個連續或不連續的通訊埠編號。 |
多個 IP 位址、所有通訊埠上的流量 (TCP 或 UDP) |
至少有兩個轉送規則:一個是使用一個 IP 位址的 TCP,另一個是使用不同 IP 位址的 UDP 三個以上的轉送規則 (如果您需要三個以上的 IP 位址) |
否 | --ports=ALL |
多個 IP 位址、特定通訊埠的流量 (TCP 或 UDP) |
至少有兩個轉送規則:一個是使用一個 IP 位址的 TCP,另一個是使用另一個 IP 位址的 UDP 如需下列其中一項功能,則需要兩個以上的轉送規則:
|
一個 IP 位址有五個或以下 TCP 通訊埠,另一個 IP 位址有五個或以下 UDP 通訊埠:否 六個以上的 TCP 或 UDP 通訊埠:是 |
將 --ports 設為一組最多五個連續或不連續的通訊埠編號。 |
限制
- 兩個以上的轉送規則如果使用相同的 IP 位址和通訊協定,則通訊埠不得重疊。例如:
- 當您使用通訊協定 TCP 和通訊埠
80
設定轉送規則時,就無法設定其他轉送規則來提供該通訊協定和通訊埠。舉例來說,您無法建立其他轉送規則來提供 TCP 通訊埠80
、81
和90
。 - 設定 TCP 和
80
、8080
和90
的轉送規則後,您就無法為 TCP 設定另一個會使用所有通訊埠的轉送規則。
- 當您使用通訊協定 TCP 和通訊埠
- 當兩個以上的轉送規則使用
--purpose=SHARED_LOADBALANCER_VIP
旗標共用相同的 IP 位址時,最多只有其中一個規則可以將通訊協定設為L3_DEFAULT
。
用途
您可以部署多種不同類型的應用程式。以下範例使用一個 IP 位址,為兩個負載平衡器接受特定通訊埠上的流量。
範例 1
本範例使用不同的轉送規則,並搭配下列參數:
- 相同的 IP 位址 (
10.1.1.1
) - 不同的通訊協定
- 各個轉送規則指向的後端服務
- 符合通訊協定:每個後端服務的通訊協定都與對應轉送規則的通訊協定相符
範例 2
本範例使用不同的轉送規則,並搭配下列參數:
- 相同的 IPv4 位址 (
10.1.1.1
) - 相同的通訊協定
- 每項轉送規則的不同編號通訊埠
設定步驟
您可以建立多個內部轉送規則,且這些規則具有相同的 IP 位址,前提是您必須同時執行下列兩項操作:
- 建立靜態 (已預約) 內部 IP 位址,供轉送規則使用。
- 將共用內部 IP 位址的
--purpose
旗標設為SHARED_LOADBALANCER_VIP
。
如需設定範例,請參閱「使用兩個轉送規則在多個通訊埠上接收流量」一文。