内部直通式网络负载均衡器是区域级负载均衡器,可让您通过只能由内部虚拟机 (VM) 实例访问的内部 IP 地址来运行和扩缩服务。
本页面讨论了具有相同 IP 地址的多个转发规则。 如需了解有关内部直通式网络负载均衡器的一般信息,请参阅内部直通式网络负载均衡器概览。
通过内部转发规则,您最多可以在 10 条转发规则中使用一个共享的内部 IP 地址。您可以将 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⌉
计算所需的转发规则数量,其中 ⌈⌉
是 ceiling(最小整数)函数,表示向上取整。
例如,假设您需要负载均衡器一个 IP 地址的 26 个 TCP 端口。如果您不想使用 --ports=ALL
创建单个转发规则,则必须创建六条转发规则,因为 26 / 5 = 5 with a remainder of 1
。
预期的前端配置 | 所需的转发规则数量 | IP 地址需要的 --purpose=SHARED_LOADBALANCER_VIP 标志 |
转发规则端口规范 |
---|---|---|---|
一个 IP 地址,所有端口上的流量 | 一条转发规则 | 否 | --ports=ALL |
一个 IP 地址,特定端口上的流量 |
对于五个或更少端口: 对于六个或更多端口: |
对于五个或更少端口:否 对于六个或更多端口:是 |
将 --ports 设置为一组最多五个连续端口号或非连续端口号。 |
多个 IP 地址,所有端口上的流量 | 每个 IP 地址一条转发规则 | 否 | --ports=ALL |
多个 IP 地址,特定端口上的流量 | 每个 IP 地址至少有一个转发规则 |
如果每个 IP 地址使用五个或更少端口:否 如果每个 IP 地址使用六个或更多端口:是 |
将 --ports 设置为一组最多五个连续端口号或非连续端口号。 |
两个内部直通式网络负载均衡器
如果您有两个内部直通式网络负载均衡器,则可以有两个后端服务,一个用于 TCP 流量,另一个用于 UDP 流量。
如果您需要多个转发规则,请使用以下公式计算所需的转发规则数量,其中 ⌈⌉
是 ceiling(最小整数)函数,表示向上取整:
⌈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 端口的三条转发规则。
预期的前端配置 | 所需的转发规则数量 | IP 地址需要的 --purpose=SHARED_LOADBALANCER_VIP 标志 |
转发规则端口规范 |
---|---|---|---|
一个 IP 地址,所有端口上的流量 | 两条转发规则(一条用于 TCP,另一条用于 UDP) | 因为 TCP 转发规则和 UDP 转发规则必须共用一个 IP 地址:是 | --ports=ALL |
一个 IP 地址,特定端口上的流量 |
对于五个或更少 TCP 端口和五个或更少 UDP 端口:两条转发规则(一条用于 TCP,另一条用于 UDP) 对于六个或更多 TCP 端口或 UDP 端口:多条转发规则,其中每条转发规则支持一个协议以及五个或更少端口 |
是 | 将 --ports 设置为一组最多五个连续端口号或非连续端口号。 |
多个 IP 地址,所有端口上的流量(TCP 或 UDP) |
至少两条转发规则(一条用于 TCP,使用一个 IP 地址;另一条用于 UDP,使用其他 IP 地址) 如果您需要三个或更多 IP 地址,则需要三条或更多转发规则 |
否 | --ports=ALL |
多个 IP 地址,特定端口上的流量(TCP 或 UDP) |
至少两条转发规则(一条用于 TCP,使用一个 IP 地址;另一条用于 UDP,使用其他 IP 地址) 两条以上转发规则(如果您需要以下项之一):
|
对于一个具有五个或更少 TCP 端口的 IP 地址以及一个具有五个或更少 UDP 端口的 IP 地址:否 对于六个或更多 TCP 端口或 UDP 端口:是 |
将 --ports 设置为一组最多五个连续端口号或非连续端口号。 |
限制
- 具有相同 IP 地址和协议的两条或更多条转发规则不能有重叠的端口。例如:
- 配置使用协议 TCP 和端口
80
的转发规则时,无法再配置其他转发规则来处理该协议和端口。例如,您无法创建另一个转发规则来提供 TCP 端口80
、81
和90
。 - 为 TCP 和端口
80
、8080
和90
配置转发规则时,不能为 TCP 配置另一个将使用所有端口的转发规则。
- 配置使用协议 TCP 和端口
- 当两条或更多转发规则使用
--purpose=SHARED_LOADBALANCER_VIP
标志共享同一 IP 地址时,最多只能有一条转发规则将协议设置为L3_DEFAULT
。
使用场景
有很多不同类型的部署。以下示例使用一个 IP 地址,该 IP 地址接受两个负载均衡器特定端口上的流量。
示例 1
此示例使用参数如下的不同转发规则:
- 相同的 IP 地址 (
10.1.1.1
) - 不同的协议
- 每条转发规则指向的不同后端服务
- 匹配的协议:每个后端服务的协议与相应转发规则的协议匹配
示例 2
此示例使用参数如下的不同转发规则:
- 相同的 IPv4 地址 (
10.1.1.1
) - 相同的协议
- 每条转发规则上使用一组不同的编号端口
配置步骤
如果您同时执行以下两项操作,则可以创建具有相同 IP 地址的多个内部转发规则:
- 创建转发规则要使用的静态(预留)内部 IP 地址。
- 将共享内部 IP 地址上的
--purpose
标志设置为SHARED_LOADBALANCER_VIP
值。
如需查看示例设置,请参阅使用两条转发规则接受多个端口上的流量。