全球外部直通式网络负载平衡器是第 4 层直通式负载平衡器,用于在可位于多个 Cloud de Confiance 区域的后端(实例组或网络端点组)之间分配外部流量。这些负载平衡器基于全球分布的 Maglev 构建,可通过 Google 的全球网络和控制平面协同运作。
全球外部直通网络负载平衡器会自动将流量定向到离用户流量进入S3NS全球网络的点最近的后端区域。
前提是符合条件的后端已在两个或更多个区域中配置:
如果某个区域已达到最大容量,负载均衡器会自动将超出该区域容量的部分新用户连接溢出到具有可用容量的次近区域,同时将现有连接保留在当前区域中。
如果某个区域发生故障,负载均衡器会自动将流量故障切换到下一个最近的具有可用容量的区域。
全球外部直通式网络负载平衡器可以接收以下来源的流量:
- 互联网上的任何客户端
- 具有外部 IP 的Cloud de Confiance 虚拟机
- Cloud de Confiance 可通过 Cloud NAT 或基于实例的 NAT 访问互联网的虚拟机
在以下情况下,可以使用全球外部直通式网络负载平衡器:
您需要为 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 流量使用高性能直通式第 4 层负载均衡器。负载均衡器可以同时处理 IPv4 和 IPv6 流量。
您需要接收未被代理的原始数据包。 例如,如果您需要保留客户端来源 IP 地址。
您需要使用相同的任播 IP 地址,以低延迟将流量提供给多个 Cloud de Confiance 区域中的后端。
您需要部署能够应对区域后端故障和过载,并能自动、顺畅地将流量重定向到具有可用容量的次近区域。
如需使用全球外部直通式网络负载平衡器,您的部署必须满足以下要求:
- 如果处理 TLS (SSL) 流量,后端必须终止 SSL 流量。全局外部直通式网络负载平衡器不支持 SSL 终止。
主要特性
全局外部直通式网络负载平衡器支持以下主要功能。
高可用性设计
负载均衡器会为您提供两个全局外部任播 IP 地址,每个地址都由不相交且隔离的全球负载均衡控制和数据平面服务器基础架构(也称为可用性组)提供服务,以实现高可用性。客户端可以使用任一 IP 地址连接到最近的具有可用容量且运行状况良好的后端。
在多个 Cloud de Confiance 区域中创建具有后端的全球后端服务时,该负载均衡器可让您提高服务可用性。如果某个特定区域中的后端发生故障,流量可以安全地故障切换到次近区域。
我们建议您至少在三个 Cloud de Confiance 区域中部署后端,以确保在区域性服务中断时仍能正常运行,即使您可以在单个 Cloud de Confiance 区域中配置所有后端也是如此。
延迟和负载感知型负载均衡
全球外部直通式网络负载平衡器只能使用高级层级。使用高级层级时,来自互联网的入站流量将从距离用户最近的入网点 (PoP) 进入 S3NS的高性能低延迟网络。同样,出站流量会经由 S3NS的网络从距离用户最近的入网点传出。
全球分布的 Maglev 负载平衡器会将传入的流量路由到距离流量进入S3NS网络的 PoP 最近的Cloud de Confiance 区域,前提是该区域具有运行状况良好的后端且有可用容量。否则,负载均衡器会自动将流量平稳地溢出到下一个最近的区域,该区域具有运行状况良好的后端且有可用容量。
您可以确定后端放置位置和容量,以实现最佳数据包延迟时间和后端效率。后端容量可以基于最大传入 PPS(每秒数据包数)速率、最大 CPU 利用率或两者兼而有之。在后端服务中配置的后端容量会在引用该后端服务的所有转发规则的 IP 地址之间公平共享。
全球外部直通式网络负载平衡器的工作原理
全球外部直通式网络负载平衡器具有前端(转发规则)和后端(后端服务及其后端组)。您可以使用实例组或GCE_VM_IP可用区级 NEG 作为后端组。
架构
下图展示了全球外部直通式网络负载平衡器如何将流量分配给多个 Cloud de Confiance 区域中的后端。创建负载均衡器时, Cloud de Confiance 会为其分配两个全局外部任播 IP 地址,这两个地址由不相交且隔离的控制平面和数据平面基础架构(也称为可用性组,AG0 和 AG1)提供。
这两个控制层面和数据层面可为每个全球外部直通网络负载平衡器提供高可用性、容错能力和弹性。一个可用性组的控制平面或数据平面中的故障不会影响其他可用性组。正确配置的客户端必须能够连接到负载均衡器的这两个 IP 地址。例如,如果客户端无法连接到 AG0 IP 地址,则必须将其配置为连接到 AG1 IP 地址。
负载均衡器由以下配置组件组成。
两个全球外部 IP 地址,分别来自每个可用性组(AG0 和 AG1)。 可以是静态的,也可以是临时的。如需了解详情,请参阅 IP 地址。
一条全局转发规则,用于指定两个全局外部 IP 地址(每个可用性组 [AG0 和 AG1] 各一个)。创建此转发规则时, Cloud de Confiance 会生成两个只读子转发规则(每个可用性组一个),以确保高可用性。如需了解详情,请参阅转发规则。
一个全球后端服务,用于定义如何将流量分配到多个Cloud de Confiance 区域中的后端。 后端组可以是所有实例组(可用区级代管式实例组或可用区级非代管式实例组),也可以是所有可用区级 NEG 后端(包含
GCE_VM_IP端点的可用区级 NEG)。如需了解详情,请参阅后端服务。
直接服务器返回
与直通式网络负载平衡器一样,全球外部直通式网络负载平衡器不是代理。该负载均衡器本身不会终止用户连接。经过负载均衡的数据包会发送到后端虚拟机,并且数据包的来源和目的地 IP 地址、协议和端口(如适用)保持不变。后端虚拟机随后终止用户连接,并将返回数据包直接发送到客户端。响应不会通过负载平衡器返回。此过程称为直接服务器返回 (DSR)。
负载均衡器 IP 地址的本地路由
与直通式网络负载平衡器一样,全球外部直通式网络负载平衡器不会对 IP 地址或端口执行源 NAT 或目标 NAT。
Cloud de Confiance 访客环境使用负载均衡器的 IP 地址配置每个后端虚拟机。虚拟机本地路由表中的条目会将后端虚拟机的负载均衡网络接口控制器 (NIC) 配置为接受目标 IP 地址与每个转发规则 IP 地址相匹配的数据包。如需了解详情,请参阅检查本地路由表中是否包含负载均衡器的 IP 地址。
请求和返回数据包的 IP 地址
当后端虚拟机从客户端接收负载均衡数据包时,数据包的来源和目标如下:
- 来源:与客户端、 Cloud de Confiance 虚拟机或互联网上的系统关联的外部 IP 地址。
- 目标:负载均衡器转发规则的 IP 地址之一。
虽然客机环境会自动配置本地路由,以便虚拟机的操作系统接受发往负载均衡器 IP 地址的流量,但如果应用配置为仅侦听虚拟机分配的内部 IP 地址,则操作系统无法将这些数据包传递给您的应用。
为确保操作系统将数据包传递给您的应用,请将在后端虚拟机上运行的应用配置为执行以下操作:
- 监听(绑定到)负载均衡器的转发规则 IP 地址或任何 IP 地址(
0.0.0.0或::)
- 如果负载均衡器转发规则的协议支持端口,则监听(绑定到)负载均衡器的转发规则中包含的端口
返回数据包直接从负载平衡器的后端虚拟机发送到客户端。返回数据包的来源 IP 地址取决于协议:
- TCP 面向连接,因此后端虚拟机的来源 IP 地址必须与请求数据包的目标 IP 地址匹配,以便客户端可以将响应数据包与相应的 TCP 连接相关联。
- UDP、ESP、GRE、ICMP 和 ICMPv6 是无连接的。后端虚拟机可以发送其来源 IP 地址与转发规则的 IP 地址或为虚拟机分配的任何外部 IP 地址相匹配的响应数据包。实际上,大多数客户端都期望响应来自作为其数据包发送目的地的同一 IP 地址。
下表总结了响应数据包的来源 IP 地址和目的地 IP 地址:
| 流量类型 | 来源 | 目的地 |
|---|---|---|
| TCP | 请求数据包的目标 | 请求数据包的来源 |
| UDP、ESP、GRE、ICMP 和 ICMPv6 | 对于大多数用例,请求数据包的目的地1 | 请求数据包的来源 |
1 如果虚拟机具有外部 IP 地址或使用 Cloud NAT,您还可以将响应数据包的来源 IP 地址设置为虚拟机 NIC 的主要内部 IPv4 地址。 Cloud de Confiance 或 Cloud NAT 会将响应数据包的来源 IP 地址更改为 NIC 的外部 IPv4 地址,或者 Cloud NAT 外部 IPv4 地址,以便将响应数据包发送到客户端的外部 IP 地址。不使用转发规则的 IP 地址作为来源属于一种高级方案,因为客户端从外部 IP 地址接收到响应数据包,而该外部 IP 地址与发送请求数据包的 IP 地址不匹配。
组件
以下部分详细介绍了全球外部直通式网络负载平衡器的每个配置组件。
IP 地址
全球外部直通网络负载平衡器需要两个全球外部 IP 地址才能提供高可用性。负载均衡器的转发规则使用这些地址来接受传入流量,并且这些地址必须属于同一 IP 版本(IPv4 或 IPv6)。 Cloud de Confiance 会从全球所有入网点通告负载均衡器的 IP 地址。每个负载均衡器 IP 地址都是全球任播 IP 地址,仅在高级层级中受支持。
这两个 IP 地址必须分别来自属于不同可用性群组的全球外部 IP 地址池。IP 地址未与 VPC 网络中的子网相关联。在 API 中,使用 globalAddresses 资源中的 purpose 字段表示可用性组:
PASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP0:适用于可用性组 0 地址。PASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP1:适用于可用性组 1 地址。
转发规则资源的 IPAddresses 字段指定零个、一个或两个 IP 地址:
- 如果省略, Cloud de Confiance 会分配两个临时 IP 地址,每个可用性组各一个。
- 如果您指定了一个 IP 地址,该地址引用了某个可用性组中的现有静态 IP 地址资源,则 Cloud de Confiance 会分配另一个可用性组中的临时 IP 地址。
- 如果您指定了两个引用现有静态 IP 地址资源的 IP 地址,则这两个 IP 地址必须来自不同的可用性组。
如果您需要在删除转发规则后保留与项目关联的地址以供重复使用,或者您需要多个转发规则引用相同的 IP 地址,请为转发规则使用预留的静态 IP 地址。
对于全球外部直通式网络负载平衡器转发规则,IP 地址可以是以下各项之一:
- Google 拥有的全球 IP 地址池中的静态或临时 IPv4 地址。
- Google 拥有的全球 IP 地址池中的静态或临时
/96外部 IPv6 地址范围。 - 来自全局公开委派前缀的静态 IPv4 BYOIP 地址。
全球外部直通式网络负载平衡器仅支持为 IPv4 地址自带 IP 地址 (BYOIP)。支持仅限于 v1 BYOIP API。预配新的 IPv4 范围最多可能需要 4 周时间,并且没有 API 可让您控制 BGP 广告状态。如需了解详情,请参阅自备 IP 配置。
转发规则的 IPAddresses 字段只能在创建时设置,无法更新。
无论来源(Google 拥有的 IP 地址还是 BYOIP), Cloud de Confiance 中的全球外部 IP 地址都来自三种不同的全球外部 IP 地址池:
- 全球外部直通式网络负载平衡器用于可用性组 AG0 的 IP 地址池
- 全球外部直通式网络负载平衡器用于可用性组 AG1 的 IP 地址池
- 全球外部代理型负载平衡器使用的 IP 地址池
因此,全球外部直通式网络负载平衡器无法与任何其他全球或区域级负载平衡器共用 IP 地址。
全局转发规则
全球外部直通式网络负载均衡器转发规则构成负载均衡器的前端,用于指定负载均衡器接受流量的目标 IP 地址、协议和端口。由于全球外部直通式网络负载平衡器不是代理,因此它会将流量传递到后端,而不会修改其来源和目的地 IP 地址、协议和端口(如果协议包含端口信息)。
您配置的全球外部直通式网络负载平衡器转发规则会指定以下内容:
- 负载均衡方案指定为
EXTERNAL_PASSTHROUGH。 IPAddresses[]字段中的一对全局 IP 地址,每个可用性组各一个。- 协议(
TCP、UDP或L3_DEFAULT)和端口。
对于您创建的每个全球外部直通式网络负载平衡器转发规则(也称为父转发规则), Cloud de Confiance会为每个负载均衡堆栈(AVAILABILITY_GROUP0 和 AVAILABILITY_GROUP1)生成两个只读子转发规则。子转发规则具有与父转发规则相同的 IP 协议、端口和后端服务设置,但仅具有父转发规则的两个 IP 地址之一。
子转发规则可以唯一标识,因为它们在父转发规则名称后附加了 -ag0 和 -ag1。它们不会消耗额外配额,也不会产生额外费用。监控指标和健康状况在子转发规则级别报告。
传入流量与转发规则匹配,即将数据包的目的地 IP 地址、协议和端口与转发规则字段(两个 IP 地址、协议以及端口之一、端口范围或所有端口 [如果协议是基于端口的])的组合进行匹配。 然后,转发规则会将流量传送到负载均衡器的后端服务。
全球外部直通式网络负载平衡器的转发规则可以使用 IPv4 或 IPv6 地址进行配置。如果您希望负载均衡器同时处理 IPv4 和 IPv6 流量,请创建两条转发规则:
指向仅限 IPv4 或双栈后端的 IPv4 流量转发规则
指向仅限 IPv6 的后端或双栈后端的 IPv6 流量转发规则
IPv4 和 IPv6 转发规则可以引用相同的后端服务,但后端服务必须引用具有双栈虚拟机网络接口的后端。
转发规则的 IP 版本应与后端虚拟机网络接口的堆栈类型相匹配。
| 后端虚拟机网络接口的堆栈类型 | 转发规则 |
|---|---|
仅限 IPv4 (IPV4_ONLY) 的虚拟机网络接口 |
只能是 IPv4 转发规则的后端。 |
仅限 IPv6 (IPV6_ONLY) 的虚拟机网络接口 |
只能是 IPv6 转发规则的后端。 |
双栈 (IPV4_IPV6) 虚拟机网络接口 |
可以是 IPv4 转发规则、IPv6 转发规则或两者的后端。 |
转发规则协议
全球外部直通式网络负载平衡器支持每条转发规则的以下协议选项:TCP、UDP 和 L3_DEFAULT。
使用 TCP 和 UDP 选项分别配置 TCP 或 UDP 负载均衡。L3_DEFAULT 协议选项可让全球外部直通式网络负载平衡器对 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 流量进行负载均衡。
除了支持 TCP 和 UDP 以外的协议之外,L3_DEFAULT 还可以让单个转发规则提供多个协议。例如,IPsec 服务通常会处理 ESP 和基于 UDP 的 IKE 和 NAT-T 流量的某些组合。L3_DEFAULT 选项允许配置一条转发规则来处理所有这些协议。
如果您使用的是 L3_DEFAULT 协议,则必须将转发规则配置为接受所有端口上的流量。由于 L3_DEFAULT 是一条全方位规则,为安全起见,您应配置入站允许防火墙规则,以仅允许您需要的 IP 协议和端口。
多个转发规则
您可以配置多个转发规则,这些规则可分为两种类型:
同一 IP 地址的多条转发规则。您可以为同一 IP 地址对配置多条转发规则,只要没有两条转发规则使用相同的协议和端口组合即可。每个转发规则可以具有不同的后端服务,或者多个转发规则可以具有相同的后端服务。
引用同一后端服务的多个转发规则。您可以配置引用同一后端服务的多个转发规则。在满足第一点中所述条件的前提下,两条或更多条转发规则可以使用同一 IP 地址对,也可以每条转发规则使用唯一的 IP 地址对。引用同一后端服务的所有转发规则的所有 IP 地址的流量会公平地共享后端目标容量。
不过,您无法在全局外部直通式网络负载平衡器与全球外部应用负载平衡器或全球外部代理网络负载平衡器之间共用同一个全球外部 IP 地址。
使用多个转发规则时,请确保将后端虚拟机上运行的应用配置为绑定到负载均衡器转发规则的所有外部 IP 地址。
配置多个转发规则在以下使用场景中非常有用:
- 您需要为同一后端服务配置多对外部 IP 地址。例如,一条转发规则用于 IPv4 地址,另一条用于 IPv6 地址。
- 您需要为同一外部 IP 地址对配置多个转发规则,但这些规则具有不同的协议或不重叠的端口或端口范围。转发规则可以使用相同或不同的后端服务。
多个转发规则的协议和端口限制条件
Cloud de Confiance 选择最多一条转发规则来处理传入的数据包。根据以下限制条件,使用同一全局外部 IP 地址对的两条或更多条转发规则必须具有唯一的协议和端口组合:为协议的所有端口配置的转发规则会阻止创建其他使用相同协议和 IP 地址对的转发规则。
使用
TCP或UDP协议的转发规则可以配置为使用所有端口,也可以配置为使用特定端口。例如,如果您创建了使用 IP 地址对(
136.124.69.214和136.124.83.205)、TCP协议和所有端口的转发规则,则无法创建任何其他使用相同 IP 地址对和TCP协议的转发规则。您可以创建两个同时使用 IP 地址对和
TCP协议的转发规则,前提是每个转发规则都具有唯一的端口或不重叠的端口范围。例如,您可以创建两个使用相同 IP 地址对和TCP协议的转发规则,其中一个转发规则的端口为80,443,另一个转发规则使用端口范围81-442。每个 IP 地址对只能创建一个
L3_DEFAULT转发规则。这是因为
L3_DEFAULT协议会根据定义使用所有端口。在此上下文中,“所有端口”这一术语包括不含端口信息的协议。单个
L3_DEFAULT转发规则可以与使用特定协议(TCP或UDP)和相同 IP 地址对的其他转发规则共存。如果您有附加到 IP 地址对的特定 TCP 或 UDP 转发规则,还可以将
L3_DEFAULT转发规则附加到同一 IP 地址对,以作为不与特定转发规则匹配的任何流量的后备规则。L3_DEFAULT转发规则会处理发送到其目的地 IP 地址的数据包,前提是当且仅当该数据包的目的地 IP 地址、协议和目的地端口与特定于协议的转发规则不匹配时。为便于说明,请考虑以下两种场景。这两种场景中的转发规则使用同一 IP 地址对:
136.124.69.214和136.124.83.205。场景 1。第一个转发规则使用
L3_DEFAULT协议。第二个转发规则使用TCP协议和所有端口。发送到任一 IP 地址的任何目标端口的 TCP 数据包都由第二个更具体的转发规则处理。使用其他协议的数据包则由第一个转发规则处理。场景 2。第一个转发规则使用
L3_DEFAULT协议。第二个转发规则使用TCP协议和端口8080。发送到任一 IP 地址的 8080 端口的 TCP 数据包由第二个转发规则处理。所有其他数据包(包括发送到其他目标端口的 TCP 数据包)均由第一个转发规则处理。
转发规则选择
Cloud de Confiance 按照以下消除过程(从与数据包的目的地 IP 地址匹配的一组候选转发规则开始),选择一个或零个转发规则来处理传入的数据包:
消除其协议与数据包协议不匹配的转发规则(
L3_DEFAULT转发规则除外)。此步骤绝不会消除使用L3_DEFAULT协议的转发规则,因为L3_DEFAULT与所有协议匹配。例如,如果数据包的协议为 TCP,则仅会消除使用UDP协议的转发规则。消除其端口与数据包的端口不匹配的转发规则。此步骤绝不会消除为所有端口配置的转发规则,因为所有端口转发规则与任何端口都匹配。
此时,其余任一候选转发规则均属于以下类别之一:
剩余两条转发规则,一条是
L3_DEFAULT转发规则,另一条是特定于协议的转发规则。使用特定于协议的转发规则来路由数据包。只剩下一条转发规则,即
L3_DEFAULT转发规则或特定于协议的转发规则。用于路由数据包。零个候选转发规则保留,且数据包被丢弃。
全局后端服务
全球外部直通式网络负载平衡器的后端服务会将传入流量分配到附加的后端,这些后端可以位于多个 Cloud de Confiance 区域。每个后端均由一个实例组或网络端点组,以及有关后端服务容量的信息组成。后端服务容量可以基于 CPU 利用率、每秒传入数据包数 (PPS) 或两者兼而有之。 后端服务会根据配置的亲和性和容量设置来管理流量分配。
后端服务会定义以下后端参数:
负载均衡方案。如需为全球外部直通式网络负载平衡器指定后端服务,必须将负载均衡方案明确设置为
EXTERNAL_PASSTHROUGH。协议。后端服务协议字段是冗余的,只能设置为
UNSPECIFIED。无论转发规则协议如何,具有UNSPECIFIED协议的后端服务都可以与任何转发规则结合使用。流量分配。后端服务会根据配置的会话亲和性、连接跟踪政策、负载均衡模式和后端容量以及负载均衡位置政策来分配流量。后端服务还可以配置为启用连接排空、调低后端容量,以及指定首选后端。其中大多数设置都具有默认值,可以帮助您快速上手。
健康检查。后端服务都必须进行相关的健康检查。
后端。后端是接收经过负载均衡的流量的实际端点。全球外部直通式网络负载平衡器可以将流量分配到位于多个 Cloud de Confiance 区域的实例组或可用区级 NEG:
虚拟机网络接口与转发规则的兼容性
由于全球外部直通式网络负载平衡器不会终止或转换流量,因此后端虚拟机的网络接口的堆栈类型必须与转发规则 IP 地址版本兼容。
| 转发规则 | 后端虚拟机的网络接口的堆栈类型 |
|---|---|
| 仅限 IPv4 转发规则 | 仅限 IPv4 (IPV4_ONLY) 或双栈 (IPV4_IPv6) |
| 仅限 IPv6 转发规则 | 仅限 IPv6 (IPV6_ONLY) 或双栈 (IPV4_IPv6) |
| IPv4 和 IPv6 转发规则 | 双栈 (IPV4_IPv6) |
后端虚拟机的网络接口与 VPC 子网的兼容性
如上表所示,您可以配置全球外部直通式网络负载平衡器,使其后端包含仅限 IPv4 的接口、双栈接口和仅限 IPv6 的接口。下表总结了哪些后端虚拟机的网络接口类型与每种 VPC 子网栈类型兼容。
| VPC 子网的栈类型 | 后端虚拟机的网络接口的堆栈类型 |
|---|---|
IPV4_ONLY(单栈)仅限 IPv4 子网范围 |
仅限 IPv4 (IPV4_ONLY) |
IPV4_IPV6(双栈)IPv4 和 IPv6 子网范围 |
仅限 IPv4 (IPV4_ONLY)、双栈 (IPV4_IPv6) 和仅限 IPv6 (IPV6_ONLY) |
IPV6_ONLY(单栈)仅限 IPv6 子网范围 |
仅限 IPv6 (IPV6_ONLY) |
请注意以下事项:
分配给虚拟机网络接口的 IP 地址直接从底层 VPC 子网分配。
对于 IPv6 连接,当虚拟机网络接口分配给已启用 IPv6 的
/64子网时, Cloud de Confiance 会从子网的/64外部 IPv6 地址范围的前半部分 (/65) 中为虚拟机网络接口分配一个/96地址范围。如需了解详情,请参阅外部 IPv6 规范。当虚拟机网络接口的栈类型为双栈 (
IPV4_IPv6) 或仅限 IPv6 (IPV6_ONLY) 时,您需要通过将 VPC 子网上的--ipv6-access-type设置配置为EXTERNAL或INTERNAL,来选择如何访问虚拟机网络接口的 IPv6 地址。 如果子网的--ipv6-access-type设置为EXTERNAL,您还必须将虚拟机网络接口上的--ipv6-network-tier设置为PREMIUM。如需了解详情,请参阅 IPv6 子网范围。
实例组后端和网络接口
在一个给定实例组中(无论是代管式还是非代管式),每个成员虚拟机的 nic0 网络接口始终位于同一 VPC 网络中:
- 对于托管式实例组 (MIG),实例组的 VPC 网络来自实例模板中定义的
nic0接口。 - 对于非托管式实例组,实例组的 VPC 网络设置为您添加到非托管式实例组的第一个虚拟机实例的
nic0网络接口所使用的 VPC 网络。即使您移除添加到群组中的第一个实例,也无法在以后更改实例组的 VPC 网络。
成员虚拟机可以有其他网络接口(vNIC 或 Dynamic Network Interface)。每个非 nic0 接口可以位于实例组的 VPC 网络(nic0 接口使用的网络)中,也可以位于其他 VPC 网络中。
nic0 网络接口,您无法使用实例组后端。请改用具有 GCE_VM_IP 端点的可用区级 NEG。如需了解详情,请参阅后端服务和 VPC 网络。
可用区级 NEG 后端和网络接口
创建具有 GCE_VM_IP 端点的新可用区级 NEG 时,您必须先将 NEG 与 VPC 网络的子网明确关联,然后才能向 NEG 添加任何端点。创建 NEG 后,子网和 VPC 网络都无法更改。
在一个给定 NEG 中,每个 GCE_VM_IP 端点实际上是一个网络接口;网络接口必须位于与 NEG 关联的子网中。作为 Compute Engine 实例来说,网络接口可以使用任何标识符。作为 NEG 中的端点来说,网络接口应使用其主要内部 IPv4 地址来标识。如需了解详情,请参阅具有 GCE_VM_IP 个端点的 NEG。
您可以通过以下两种方式向 NEG 添加 GCE_VM_IP 端点:
- 如果在添加端点时仅指定了虚拟机名称(而没有指定任何 IP 地址),则 Cloud de Confiance 会要求虚拟机在与 NEG 关联的子网中具有网络接口。 Cloud de Confiance为端点选择的 IP 地址是与 NEG 关联的子网中虚拟机网络接口的主要内部 IPv4 地址。
- 如果您在添加端点时同时指定了虚拟机名称和 IP 地址,则您提供的 IP 地址必须是虚拟机其中一个网络接口的主要内部 IPv4 地址。该网络接口必须位于与 NEG 关联的子网中。请注意,指定 IP 地址是多余的操作,因为与 NEG 关联的子网中只能有一个网络接口。
后端服务和 VPC 网络
后端服务不与任何 VPC 网络关联;但是,如前所述,每个后端实例组或可用区级 NEG 都与 VPC 网络关联。只要所有后端都位于同一项目中,并且所有后端都是同一类型(实例组或可用区级 NEG),负载均衡器及其后端就可以位于同一 VPC 网络中,也可以位于不同的 VPC 网络中。
如需将数据包分发到非 nic0 接口,您必须满足以下两项要求:
您必须使用可用区级 NEG(具有
GCE_VM_IP端点),而不是实例组。非
nic0和nic0网络接口必须位于不同的 VPC 网络中。(NEG 的 VPC 网络不能同时包含nic0接口和所需的非nic0接口。)
首选后端
您还可以将特定后端指定为首选后端。在这些后端的容量(即后端的均衡模式指定的目标容量)满之前,系统不会将请求发送到其余的后端。
全球外部直通式网络负载平衡器的后端服务最多只能有一个首选后端组,并且不允许在同一 Cloud de Confiance 区域中同时存在首选后端和非首选后端。
如需了解详情,请参阅高级负载均衡优化。
健康检查
健康检查信息用于确定哪些后端符合接收新连接的条件,并控制现有连接是否继续保留在运行状况不佳的后端上。负载均衡器会针对每个转发规则 IP 地址单独发送健康检查探测。因此,对于具有两个 IP 地址的全球外部直通式网络负载平衡器转发规则,系统会针对每个 IP 地址进行探测,从而使每个后端的探测频率加倍。如需了解详情,请参阅多重探测和频率。
健康检查类型、协议和端口
负载均衡器的后端服务必须引用一个全球健康检查,并使用任何受支持的健康检查协议和端口。健康检查的协议和端口详情不必与转发规则的协议和端口信息相匹配。
由于所有受支持的健康检查协议都依赖于 TCP(不支持 UDP 健康检查),因此当您使用全球外部直通式网络负载平衡器对其他协议的连接和流量进行负载均衡时,后端虚拟机必须运行基于 TCP 的服务器来响应健康检查探测器。例如,您可以使用 HTTP 健康检查,并在每个后端虚拟机上运行 HTTP 服务器。在此示例中,您的脚本或软件负责配置 HTTP 服务器,以便仅当监听负载均衡连接的软件正常运行时才返回状态 200。
如需详细了解受支持的健康检查协议和端口,请参阅健康检查类别、协议和端口以及健康检查原理。
健康检查数据包
对于实例组后端,健康检查探测器会将数据包发送到每个后端虚拟机的 nic0 网络接口。对于 GCE_VM_IP 可用区级 NEG 后端,健康检查探测器会将数据包发送到 NEG 所在 VPC 子网中的网络接口。健康检查数据包具有以下特征:
- 来源 IP 地址来自相关的健康检查探测 IP 范围。
- 目标 IP 地址与引用全球级外部直通式网络负载平衡器后端服务的转发规则的两个 IP 地址中的任一 IP 地址相匹配。健康检查数据包会发送到这两个 IP 地址。
- 目标端口与您在健康检查中指定的端口号相匹配。
在后端虚拟机上运行的应用必须绑定并监听相关的 IP 地址和端口组合。为此,请配置应用,使其绑定并监听虚拟机任意 IP 地址(0.0.0.0 或 ::/0)的相关端口。如需了解详情,请参阅探测数据包的目标。
防火墙规则
由于全球外部直通式网络负载平衡器不是代理,因此它会将流量传递到后端虚拟机,而不会修改其来源和目标 IP 地址、协议和端口(如果协议包含端口信息)。因此,您必须创建入站允许防火墙规则或入站允许分层防火墙政策,以控制对负载均衡器后端虚拟机的访问权限,具体来说,就是允许健康检查以及您要进行负载均衡的流量。否则,隐式拒绝入站流量的防火墙规则会阻止来自所有外部来源 IP 地址的入站数据包。
转发规则和入站允许防火墙规则或分层防火墙政策通过以下方式协同工作:转发规则指定目的地 IP 地址、协议以及数据包必须满足才能转发到后端虚拟机的端口要求(如已定义)。入站允许防火墙规则控制防火墙是将转发的数据包传送到虚拟机还是将其丢弃。 Cloud de Confiance 默认 VPC 网络包含一组受限的预填充的入站允许防火墙规则。
如需接受来自互联网上任何 IP 地址的流量,您必须使用
0.0.0.0/0或::/0来源范围创建入站允许防火墙规则。如需仅允许来自某些 IP 地址范围的流量,请使用更具限制性的来源范围。为安全起见,入站允许防火墙规则应仅允许您需要的 IP 协议和端口。在使用协议设置为
L3_DEFAULT的转发规则时,限制协议(以及在可能的情况下,端口)配置尤为重要。L3_DEFAULT转发规则会转发所有受支持的 IP 协议(如果协议和数据包具有端口信息,则在所有端口上)的数据包。全球外部直通式网络负载平衡器使用 Cloud de Confiance 健康检查。因此,您必须始终允许来自健康检查 IP 地址范围的流量。 您可以配置这些入站允许防火墙规则,使其专门针对负载均衡器的健康检查的协议和端口。
流量分配
对于全球外部直通式网络负载均衡器,流量分配取决于不同的属性,例如会话亲和性、连接跟踪政策、负载均衡模式和后端容量、首选后端以及负载均衡位置政策。它们共同构成一个协调的工作流,可优化负载均衡配置,以实现可靠的性能和高效的资源利用率。
共享 VPC 架构
请注意以下与全球外部直通式网络负载平衡器的共享 VPC 架构相关的要点:
除了 IP 地址资源之外,与全球外部直通式网络负载平衡器关联的所有其他资源(转发规则、后端服务、健康检查和后端组 [实例组或 NEG])都必须位于同一项目中,并且该项目可以是宿主项目或服务项目。
如果负载均衡资源位于宿主项目中,则 IP 地址资源也必须位于宿主项目中。
如果负载均衡资源位于服务项目中,则 IP 地址资源可以位于同一服务项目中,也可以位于宿主项目中。
下表概述了全球外部直通式网络负载平衡器的不同组件在共享 VPC 架构中的位置。
| 负载均衡资源的位置1 | IP 地址资源的必需位置 |
|---|---|
| 宿主项目 | 宿主项目 |
| 服务项目 | 服务项目或宿主项目 |
1 包括转发规则、后端服务、健康检查和后端(实例组或 NEG)
限制
后端只能部署在以下 Cloud de Confiance 区域中:
- 北美洲:
us-west1、us-west4、us-east4、us-east5 - 欧洲:
europe-west2、europe-west3 - 亚洲:
asia-southeast1、asia-south1、asia-northeast1 - 南美洲:
southamerica-east1 - 非洲:
africa-south1 - 澳大利亚:
australia-southeast1
- 北美洲:
全球外部直通式网络负载平衡器只能在高级层级中配置。
您无法使用 Cloud de Confiance 控制台配置全球外部直通式网络负载平衡器。请改用 Google Cloud CLI 或 REST API。
您不能使用区域级代管式实例组后端。您可以使用可用区级托管式实例组、可用区级非托管式实例组和包含
GCE_VM_IP端点的可用区级 NEG。在后端服务中使用实例组的现有限制和指南也适用于全球外部直通式网络负载平衡器。在全局外部直通式网络负载平衡器与区域级直通式网络负载平衡器(区域级外部直通式网络负载平衡器或内部直通式网络负载平衡器)之间共享的实例组必须配置为在全局外部直通式网络负载平衡器上使用
RATE均衡模式。区域级直通式网络负载平衡器始终使用CONNECTION均衡模式。只要多个全球外部直通式网络负载平衡器转发规则的配置协议和端口不冲突,它们就可以共享同一个全球外部 IP 地址。不过,您无法在全局外部直通式网络负载平衡器与全球外部应用负载平衡器或全球外部代理网络负载平衡器之间共用同一个全球外部 IP 地址。
全球外部直通式网络负载平衡器仅支持为 IPv4 地址自带 IP 地址 (BYOIP)。支持仅限于 v1 BYOIP API。预配新的 IPv4 范围最多可能需要 4 周时间,并且没有 API 可让您控制 BGP 广告状态。如需了解详情,请参阅自备 IP 配置。
您无法在一个项目中创建超过 10 条转发规则,也无法向一个后端服务添加超过 25 个后端组。如需了解详情,请参阅配额和限制。
全局外部直通式网络负载平衡器后端服务最多只能有一个
PREFERRED后端组。您不能在同一 Cloud de Confiance 区域中同时拥有PREFERRED和非PREFERRED后端组。您无法在 GKE 中部署全球外部直通式网络负载平衡器。
您无法使用 Google Cloud Armor 为全球外部直通式网络负载平衡器提供高级网络 DDoS 攻击防护。如需了解详情,请参阅配置高级网络 DDoS 攻击。
在负载均衡器的后端服务上配置的负载均衡位置政策不支持
WEIGHTED_MAGLEV选项。对于全球外部直通式网络负载平衡器,仅支持MAGLEV。不支持
PER_SESSION连接跟踪模式。 仅支持PER_CONNECTION连接跟踪模式。仅支持以下负载均衡模式:
RATE和UTILIZATION。速率不是以每秒请求数为单位,而是以每秒传入的数据包数为单位。实例组同时支持RATE和UTILIZATION,而 NEG 仅支持RATE。不支持导向转发规则(基于来源 IP 的流量导向)。
连接到后端服务的所有后端必须是同一类型。 后端服务不能同时包含实例组和可用区级 NEG。
无法使用父级全局转发规则查询或过滤监控指标;必须使用 Cloud de Confiance生成的子级转发规则查询这些指标。
价格
如需了解价格信息,请参阅网络价格:Cloud Load Balancing。