内部直通式网络负载均衡器是在 Andromeda 网络虚拟化堆栈上构建的区域级负载均衡器。
内部直通式网络负载均衡器在 Virtual Private Cloud (VPC) 网络中同一区域内的内部虚拟机 (VM) 实例之间分配流量。它可让您在只能由位于同一 VPC 网络中的系统或连接到 VPC 网络的系统访问的内部 IP 地址后面运行和扩缩服务。
在以下情况下,可以使用内部直通式网络负载均衡器:
- 您需要为 TCP、UDP、ICMP、ICMPv6、SCTP、ESP、AH 和 GRE 协议使用高性能直通式第 4 层负载均衡器。
- 如果通过 TLS (SSL) 处理流量,则后端可以终止 SSL 流量,而不是负载均衡器。内部直通式网络负载均衡器无法终止 SSL 流量。
- 您需要转发未被代理的原始数据包。 例如,如果您需要保留客户端来源 IP 地址。
- 您的现有设置使用直通式负载均衡器,您希望原封不动地将它迁移。
内部直通式网络负载均衡器适用于许多应用场景。如需查看一些概要示例,请参阅直通式网络负载均衡器概览。
内部直通式网络负载均衡器的工作原理
内部直通式网络负载均衡器具有前端(转发规则)和后端(后端服务)。您可以将实例组或 GCE_VM_IP 可用区级 NEG 用作后端服务的后端。以下示例展示了实例组后端。
与代理负载均衡器不同,内部直通式网络负载均衡器不会终止来自客户端的连接,然后打开与后端的新连接。相反,内部直通式网络负载均衡器会将连接直接从客户端路由到符合条件的后端,而无需在客户端和后端之间进行代理。每个所选后端的响应都通过直接服务器返回功能传送。如需了解详情,请参阅内部直通式网络负载均衡器的流量分配和请求和返回数据包的 IP 地址。
负载均衡器使用健康检查探测功能来监控后端的健康状况。如需了解详情,请参阅健康检查部分。
Google Cloud Linux 客机环境、Windows 客机环境或等效进程将每个后端虚拟机配置成使用负载均衡器的 IP 地址。对于通过 Google Cloud 映像创建的虚拟机,访客代理(以前称为 Windows 客机环境或 Linux 客机环境)会安装负载均衡器的 IP 地址的本地路由。基于 Container-Optimized OS 的 Google Kubernetes Engine 实例改用 iptables 来实现此功能。
Google Cloud 虚拟网络可管理流量传输,并根据需要扩缩。
协议、方案和范围
每个内部直通式网络负载均衡器均支持以下功能:
- 一种具有负载均衡方案
INTERNAL和受支持的协议的后端服务。如需了解详情,请参阅后端服务。 - 指定为以下任一项的后端虚拟机:
- 位于一个区域和 VPC 网络中的代管式实例组和非代管式实例组。
- 后端可用区级网络端点组 (NEG)(具有
GCE_VM_IP类型端点),位于同一区域和 VPC 网络中。NEG 中的端点必须是 NEG 所使用同一子网和可用区中的主要内部 IP 地址。
- 在使用实例群组后端时支持 IPv4 和 IPv6 流量。具有
GCE_VM_IP端点的可用区级网络端点群组 (NEG) 仅支持 IPv4 流量。 - 一个或多个转发规则,每个规则使用
TCP、UDP或L3_DEFAULT协议,与后端服务的协议匹配。 - 具有自己的唯一 IP 地址的每条转发规则或具有相同公共 IP 地址的多条转发规则。
- 最多包含五个端口或所有端口的每条转发规则。
- 任何区域中的客户端(如果启用了全球访问权限)。
- 与负载均衡器位于同一区域的客户端(如果停用全球访问权限)。
内部直通式网络负载均衡器不支持以下功能:
- 多个区域中的后端虚拟机。
- 均衡源自互联网的流量(除非您将内部 TCP/UDP 负载均衡器与外部负载均衡器配合使用)。
- 具有分段标头的 IPv6 数据包。
客户端访问
默认情况下,负载均衡器仅支持与负载均衡器位于同一区域的客户端。客户端可以位于负载均衡器所在的网络中,也可以位于使用 VPC 网络对等互连连接的 VPC 网络中。您可以启用全球访问权限,允许来自任何区域的客户端访问您的内部直通式网络负载均衡器。
下表汇总了客户端访问。
| 在停用全球访问权限的情况下 | 在启用全球访问权限的情况下 |
|---|---|
| 客户端必须位于负载均衡器所在的地区中。客户端还必须位于负载均衡器所在的 VPC 网络中,或者位于使用 VPC 网络对等互连连接到负载均衡器 VPC 网络的 VPC 网络中。 | 客户端可以位于任何地区中。客户端仍必须位于负载均衡器所在的 VPC 网络中,或者位于使用 VPC 网络对等互连连接到负载均衡器 VPC 网络的 VPC 网络中。 |
| 本地客户端可通过 Cloud VPN 隧道或 VLAN 连接访问负载均衡器。这些隧道或连接必须位于负载均衡器所在的地区中。 | 本地客户端可通过 Cloud VPN 隧道或 VLAN 连接访问负载均衡器。这些隧道或连接可以位于任何地区中。 |
请求和返回数据包的 IP 地址
当后端虚拟机从客户端接收负载均衡数据包时,数据包的来源和目标如下:
- 来源:客户端的内部 IPv4 地址、IPv6 地址或来自其中一个客户端别名 IPv4 地址范围的 IPv4 地址。
- 目标:负载均衡器转发规则的 IP 地址。 转发规则使用单个 内部 IPv4 地址或内部 IPv6 地址范围。
由于负载均衡器是直通负载均衡器(而非代理),因此数据包到达负载均衡器的转发规则的目的地 IP 地址。将在后端虚拟机上运行的软件配置为执行以下操作:
- 监听(绑定到)负载均衡器的转发规则 IP 地址或任何 IP 地址(
0.0.0.0或::) - 如果负载均衡器转发规则的协议支持端口:监听(绑定到)负载均衡器的转发规则中包含的端口
返回数据包直接从负载均衡器的后端虚拟机发送到客户端。返回数据包的来源 IP 地址和目的地 IP 地址取决于协议:
- TCP 面向连接,因此后端虚拟机的来源 IP 地址必须与转发规则的 IP 地址匹配,以便客户端可以将响应数据包与相应的 TCP 连接相关联。
- UDP 是无连接的,因此后端虚拟机可以发送来源 IP 地址与转发规则的 IP 地址或为虚拟机分配的任何 IP 地址相匹配的响应数据包。实际上,大多数客户端都期望响应来自作为其数据包发送目的地的同一 IP 地址。
下表总结了响应数据包的来源和目的地:
| 流量类型 | 来源 | 目的地 |
|---|---|---|
| TCP | 负载均衡器转发规则的 IP 地址 | 请求数据包的来源 |
| UDP | 对于大多数用例,负载均衡器转发规则的 IP 地址 1 | 请求数据包的来源 |
1 可以将响应数据包的来源设置为虚拟机 NIC 的主要内部 IPv4 地址或者别名 IP 地址范围。如果虚拟机启用了 IP 转发,则还可以使用任意 IP 地址来源。不使用转发规则的 IP 地址作为来源属于一种高级方案,因为客户端从内部 IP 地址接收到响应数据包,而该内部 IP 地址与发送请求数据包的 IP 地址不匹配。
架构
具有多个后端的内部直通式网络负载均衡器会在所有这些后端之间分配连接。如需了解分配方法及其配置选项,请参阅流量分配。
您可以将实例组或可用区级 NEG 用作内部直通式网络负载均衡器的后端,但不能将实例组或可用区级 NEG 组合使用:
- 如果您选择实例组,则可以使用非代管式实例组、可用区级代管式实例组、区域级代管式实例组或这些实例组类型的组合。
- 如果选择可用区级 NEG,就必须使用
GCE_VM_IP可用区级 NEG。
高可用性描述了如何设计不依赖于单个区域的内部负载均衡器。
作为内部直通式网络负载均衡器的后端虚拟机参与的实例必须运行相应的 Linux 或 Windows 客机环境,或是提供同等功能的其他进程。此客机环境必须能够联系元数据服务器(metadata.google.internal,169.254.169.254)以读取实例元数据,以便生成本地路由以接受发送到负载均衡器内部 IP 地址的流量。
此图显示了两个单独的实例组中的虚拟机之间的流量分配情况。从客户端实例发送到负载均衡器 IP 地址 (10.10.10.9) 的流量在任一实例组中的后端虚拟机之间分配。从任意服务后端虚拟机发送的响应直接传送到客户端虚拟机。
您可以将内部直通式网络负载均衡器与自定义模式或自动模式 VPC 网络配合使用。您还可以使用现有的旧式网络创建内部直通式网络负载均衡器。
内部直通式网络负载均衡器不支持以下功能:
- 多个地区中的后端虚拟机
- 均衡源自互联网的流量(除非您将内部直通式网络负载均衡器与外部负载均衡器结合使用)
- 具有分段标头的 IPv6 数据包
内部 IP 地址
内部直通式网络负载均衡器支持 IPv4 专用、双栈和 IPv6 专的子网。如需详细了解每种类型,请参阅子网类型。
内部直通式网络负载均衡器至少需要一个转发规则。 转发规则引用内部 IP 地址:
- 对于 IPv4 流量,转发规则引用主要 IPv4 子网范围内的 IPv4 地址。
对于 IPv6 流量,转发规则引用子网
/64内部 IPv6 地址范围中的内部/96IPv6 地址范围。子网必须是双栈或单栈仅限 IPv6 的子网,且具有内部 IPv6 地址范围(将ipv6-access-type设置为INTERNAL)。IPv6 地址范围可以是预留静态地址或临时地址。
防火墙配置
内部直通式网络负载均衡器要求对分层防火墙政策和 VPC 防火墙规则进行以下配置:
- 允许来自 IPv4 或 IPv6 健康检查来源范围的入站流量。
- 允许来自客户端 IPv4 或 IPv6 地址来源范围的入站流量。
如需了解详情,请参阅配置防火墙规则。
转发规则
转发规则指定负载均衡器用于接受流量的协议和端口。由于内部直通式网络负载均衡器不是代理,因此它们会将流量传递到使用相同协议和端口的后端。
内部直通式网络负载均衡器至少需要一个内部转发规则。您可以为同一负载均衡器定义多个转发规则。
如果您希望负载均衡器同时处理 IPv4 和 IPv6 流量,请创建两条转发规则:一条指向 IPv4 流量(其指向 IPv4(或双栈)后端),另一条指向 IPv6 流量(其仅指向双栈后端)。IPv4 和 IPv6 转发规则可以引用相同的后端服务,但后端服务必须引用双栈后端。
转发规则必须引用负载均衡器后端组件所在的 VPC 网络和地区中的特定子网。此要求具有以下含义:
- 您为转发规则指定的子网不必与后端虚拟机使用的任何子网相同;但是,子网必须位于转发规则所在的地区中。
- 对于 IPv4 流量,内部转发规则引用所选子网的主要 IPv4 地址范围内的区域级内部 IPv4 地址。您可以通过以下方式分配 IPv4 地址:指定预留的内部 IPv4 地址、指定自定义临时 IPv4 地址,或让 Google Cloud自动分配临时 IPv4 地址。
对于 IPv6 流量,转发规则引用子网
/64内部 IPv6 地址范围中的/96IPv6 地址范围。该子网必须是ipv6-access-type设置为INTERNAL的双栈子网。/96IPv6 地址范围可以通过以下方式分配:指定预留的内部 IPv6 地址、指定自定义临时 IPv6 地址,或让 Google Cloud自动分配临时 IPv6 地址。如需指定自定义临时 IPv6 地址,您必须使用 gcloud CLI 或 API。 Google Cloud 控制台不支持为转发规则指定自定义临时 IPv6 地址。
转发规则协议
内部直通式网络负载均衡器支持对每个转发规则使用以下 IPv4 协议选项:TCP、UDP 或 L3_DEFAULT。
内部直通式网络负载均衡器支持每条转发规则的以下 IPv6 协议选项:TCP 或 UDP。
借助 L3_DEFAULT 选项,您可以对 TCP、UDP、ICMP、ICMPv6、SCTP、ESP、AH 和 GRE 协议进行负载均衡。
除了支持 TCP 和 UDP 以外的协议之外,L3_DEFAULT 选项还可以让单个转发规则同时转发多个协议的流量。例如,除了发出 HTTP 请求之外,您还可以 ping 负载均衡器 IP 地址。
使用 TCP 或 UDP 协议的转发规则可以引用使用与转发规则相同的协议的后端服务或使用 UNSPECIFIED 协议的后端服务。
如果您使用的是 L3_DEFAULT 协议,则必须将转发规则配置为接受所有端口上的流量。如需配置所有端口,请使用 Google Cloud CLI 设置 --ports=ALL,或使用 API 将 allPorts 设置为 True。
下表总结了如何针对不同协议使用这些设置:
| 经过负载均衡的流量 | 转发规则协议 | 后端服务协议 |
|---|---|---|
| TCP(IPv4 或 IPv6) | TCP |
TCP or UNSPECIFIED |
| UDP(IPv4 或 IPv6) | UDP |
UDP or UNSPECIFIED |
| TCP、UDP、ICMP、ICMPv6、SCTP、ESP、AH 和 GRE | L3_DEFAULT |
UNSPECIFIED |
转发规则和全球访问权限
即使启用了全球访问权限,内部直通式网络负载均衡器的转发规则也是区域级规则。启用全球访问权限后,地区内部转发规则的 allowGlobalAccess 标志设为 true。
转发规则和端口指定
在创建内部转发规则时,您必须选择以下端口规范之一:
- 按编号指定 1-5 个端口。
- 指定
ALL以转发所有端口上的流量。
一个支持所有 TCP 端口或所有 UDP 端口的内部转发规则允许后端虚拟机在各自的端口上运行多个应用。发送到给定端口的流量会传送到相应的应用,并且所有应用都使用同一 IP 地址。
如果您需要转发超过五个特定端口的流量,请将防火墙规则和转发规则结合使用。创建转发规则时,请指定所有端口,然后创建仅允许流量进入所需端口的入站 allow 防火墙规则。将防火墙规则应用于后端虚拟机。
转发规则在创建后无法修改。如果您需要更改内部转发规则的指定端口或内部 IP 地址,则必须删除并重建转发规则。
单个后端服务的多个转发规则
您可以配置多个内部转发规则,这些规则全部引用相同的内部后端服务。内部直通式网络负载均衡器至少需要一个内部转发规则。
通过为同一后端服务配置多个转发规则,您可以执行以下操作:
为负载均衡器分配多个 IP 地址。您可以创建多条转发规则,每条转发规则使用唯一的 IP 地址。每条转发规则可以指定所有端口或一组最多五个端口。
将一组使用同一 IP 地址的特定端口分配给负载均衡器。您可以创建多个共享相同 IP 地址的转发规则,其中每个转发规则使用一组最多 5 个端口。这是配置指定所有端口的单个转发规则的替代方案。
如需详细了解涉及两个共享内部 IP 地址的两条或多条内部转发规则的场景,请参阅具有相同 IP 地址的多条转发规则。
使用多条内部转发规则时,请务必将在后端虚拟机上运行的软件配置为绑定到所有转发规则 IP 地址或任何地址(对于 IPv4 为 0.0.0.0/0,对于 IPv6 为 ::/0)。通过负载均衡器传送的数据包的目标 IP 地址是与相应内部转发规则关联的内部 IP 地址。如需了解详情,请参阅 TCP 和 UDP 请求与返回数据包。
后端服务
每个内部直通式网络负载均衡器都有一个用于定义后端参数和行为的区域级内部后端服务。后端服务的名称是 Google Cloud 控制台中显示的内部直通式网络负载均衡器的名称。
每个后端服务会定义以下后端参数:
协议。后端服务支持 IPv4 和 IPv6 流量。 如果协议具有端口概念(例如
TCP或UDP),后端服务会将数据包传送到流量发送到的同一目标端口上的后端虚拟机。后端服务支持以下 IPv4 协议选项:
TCP、UDP或UNSPECIFIED。后端服务支持以下 IPv6 协议选项:
TCP或UDP。 后端服务协议必须与转发规则协议协调一致。如需查看具有可能的转发规则和后端服务协议组合的表,请参阅转发规则协议规范。
健康检查。后端服务都必须进行相关的健康检查。
每个后端服务都在单个地区内运行,并为单个 VPC 网络中的后端虚拟机分配流量:
一种后端,一个区域。后端是实例组或具有
GCE_VM_IP端点的可用区级 NEG,位于后端服务和转发规则所在的区域。实例组后端可以是非代管式实例组、可用区级代管式实例组或区域级代管式实例组。可用区级 NEG 后端必须使用GCE_VM_IP端点。一个 VPC 网络。每个实例组或 NEG 后端都有一个关联的 VPC 网络,即使该实例组或 NEG 尚未连接到后端服务也是如此。如需详细了解网络如何与每种类型的后端相关联,请参阅实例组后端和网络接口以及可用区级 NEG 后端和网络接口。后端服务资源本身也有一个关联的 VPC 网络,该网络可以显式定义或隐式定义。如需详细了解后端服务的网络,请参阅后端服务网络规范和后端服务网络规则。
实例组后端和网络接口
在一个给定实例组中(无论是代管式还是非代管式),所有虚拟机实例的 nic0 网络接口都必须位于同一 VPC 网络中。
- 对于托管式实例组 (MIG),实例组的 VPC 网络是在实例模板中定义的。
- 对于非代管式实例组,实例组的 VPC 网络将被定义为您添加到非代管式实例组的第一个虚拟机实例的
nic0网络接口所用的 VPC 网络。
如果 Dynamic NIC 所属的虚拟机是负载均衡实例组的成员,则可以删除该 Dynamic NIC。
可用区级 NEG 后端和网络接口
创建具有 GCE_VM_IP 端点的新可用区级 NEG 时,您必须先将 NEG 与 VPC 网络的子网明确关联,然后才能向 NEG 添加任何端点。创建 NEG 后,子网和 VPC 网络都无法更改。
在一个给定 NEG 中,每个 GCE_VM_IP 端点实际上是一个网络接口;网络接口必须位于与 NEG 关联的子网中。作为 Compute Engine 实例来说,网络接口可以使用任何标识符。作为 NEG 中的端点来说,网络接口应使用其主要内部 IPv4 地址来标识。
您可以通过以下两种方式向 NEG 添加 GCE_VM_IP 端点:
- 如果在添加端点时仅指定了虚拟机名称(而没有指定任何 IP 地址),则 Google Cloud 会要求虚拟机在与 NEG 关联的子网中具有网络接口。 Google Cloud为端点选择的 IP 地址是与 NEG 关联的子网中虚拟机网络接口的主要内部 IPv4 地址。
- 如果您在添加端点时同时指定了虚拟机名称和 IP 地址,则您提供的 IP 地址必须是虚拟机其中一个网络接口的主要内部 IPv4 地址。该网络接口必须位于与 NEG 关联的子网中。请注意,指定 IP 地址是多余的操作,因为与 NEG 关联的子网中只能有一个网络接口。
如果 Dynamic NIC 是负载均衡的网络端点组的端点,则无法删除该 Dynamic NIC。
后端服务网络规范
您可以在创建后端服务时使用 --network 标志,明确将 VPC 网络与后端服务相关联。后端服务网络规则会立即生效。
如果您在创建后端服务时省略了 --network 标志,则Google Cloud 会使用以下某个限定事件来隐式设置后端服务的关联 VPC 网络。后端服务的关联 VPC 网络一旦设置便无法更改:
如果后端服务还没有任何关联的后端,并且您将第一个转发规则配置为引用后端服务,则Google Cloud 会将后端服务的关联 VPC 网络设置为此转发规则所用子网所在的 VPC 网络。
如果后端服务还没有引用它的转发规则,并且您将第一个实例组后端添加到后端服务,则Google Cloud 会将后端服务的 VPC 网络设置为与该第一个实例组后端关联的 VPC 网络。这意味着后端服务的关联 VPC 网络将是该第一个实例组后端中每个虚拟机的
nic0网络接口所用的网络。如果后端服务还没有引用它的转发规则,并且您将第一个可用区级 NEG 后端(具有
GCE_VM_IP端点)添加到后端服务,则Google Cloud 会将后端服务的 VPC 网络设置为与该第一个 NEG 后端关联的 VPC 网络。
在系统通过限定事件设置后端服务的 VPC 网络后,您后续添加的任何其他转发规则、后端实例组或后端可用区级 NEG 都必须遵循相应的后端服务网络规则。
后端服务网络规则
在后端服务与特定 VPC 网络关联后,以下规则适用:
配置转发规则来引用后端服务时,转发规则必须使用后端服务 VPC 网络的子网。转发规则和后端服务不能使用不同的 VPC 网络,即使这些网络进行连接(例如使用 VPC 网络对等互连进行连接)也不例外。
添加实例组后端时,必须满足以下条件之一:
- 与实例组关联的 VPC 网络(即实例组中每个虚拟机的
nic0网络接口所用的 VPC 网络)必须与后端服务的关联 VPC 网络匹配。 - 每个后端虚拟机在与后端服务关联的 VPC 网络中都必须有一个非
nic0接口。
- 与实例组关联的 VPC 网络(即实例组中每个虚拟机的
添加具有
GCE_VM_IP端点的可用区级 NEG 后端时,与 NEG 关联的 VPC 网络必须与后端服务关联的 VPC 网络相匹配。
双栈后端(IPv4 和 IPv6)
如果您希望负载均衡器使用同时处理 IPv4 和 IPv6 流量的双栈后端,请注意以下要求:
- 后端必须在与负载均衡器的 IPv6 转发规则位于同一区域的双栈子网中配置。对于后端,您可以使用将
ipv6-access-type设置为INTERNAL或EXTERNAL的子网。 如果后端子网的ipv6-access-type设置为EXTERNAL,您必须使用另一个双栈子网或 IPv6 专用子网,并将ipv6-access-type设置为INTERNAL,以便用于负载均衡器的内部转发规则。如需了解详情,请参阅添加双栈子网。 - 后端必须配置为双栈,并将
stack-type设置为IPV4_IPV6。如果后端子网的ipv6-access-type设置为EXTERNAL,您还必须将--ipv6-network-tier设置为PREMIUM。如需了解详情,请参阅创建使用 IPv6 地址的实例模板。
IPv6 专用后端
如果您希望负载均衡器使用 IPv6 专用后端,请注意以下要求:
- IPv6 专用实例仅在非托管实例组中受支持。不支持其他任何后端类型。
- 后端必须在与负载均衡器的 IPv6 转发规则位于同一区域的双栈子网或IPv6 专用子网中配置。对于后端,您可以使用将
ipv6-access-type设置为INTERNAL或EXTERNAL的子网。如果后端子网的ipv6-access-type设置为EXTERNAL,您必须使用另一个 IPv6 专用子网,并将ipv6-access-type设置为INTERNAL,以便用于负载均衡器的内部转发规则。 - 后端必须配置为 IPv6 专用,并将虚拟机
stack-type设置为IPV6_ONLY。如果后端子网的ipv6-access-type设置为EXTERNAL,您还必须将--ipv6-network-tier设置为PREMIUM。如需了解详情,请参阅创建使用 IPv6 地址的实例模板。
请注意,您可以同时在双栈子网和 IPv6 专用子网下创建 IPv6 专用虚拟机,但不能在 IPv6 专用子网下创建双栈虚拟机。
后端子集
后端子集化是一项可选功能,通过限制流量分配到的后端数量来提高性能。
我们建议您仅在单个负载均衡器需要支持超过 250 个后端虚拟机时,才启用子集化。如需了解详情,请参阅内部直通式网络负载均衡器的后端子集化。
健康检查
健康检查信息用于确定哪些后端符合接收新连接的条件,并且您可以控制现有连接是否继续保留在运行状况不佳的后端上。如需详细了解符合条件的后端,请参阅内部直通式网络负载均衡器的流量分配。
健康检查类型、协议和端口
负载均衡器的后端服务必须引用一个全球或区域级健康检查,并使用任何受支持的健康检查协议和端口。健康检查的协议和端口详情不必与负载均衡器后端服务协议及转发规则 IP 端口信息相匹配。
由于所有受支持的健康检查协议都依赖于 TCP,因此当您使用内部直通式网络负载均衡器对其他协议的连接和流量进行负载均衡时,后端虚拟机必须运行基于 TCP 的服务器来响应健康检查探测器。例如,您可以使用 HTTP 健康检查,并在每个后端虚拟机上运行 HTTP 服务器。在此示例中,您的脚本或软件负责配置 HTTP 服务器,以便仅当监听负载均衡连接的软件正常运行时才返回状态 200。
如需详细了解受支持的健康检查协议和端口,请参阅健康检查类别、协议和端口以及健康检查原理。
健康检查数据包
健康检查探测器会将数据包发送到后端虚拟机网络接口,该接口位于与后端服务网络规范相匹配的 VPC 网络中。健康检查数据包具有以下特征:
- 来源 IP 地址来自相关的健康检查探测 IP 范围。
- 目标 IP 地址与引用该内部直通式网络负载均衡器后端服务的转发规则的每个 IP 地址相匹配。
- 目标端口与您在健康检查中指定的端口号相匹配。
在后端虚拟机上运行的软件必须绑定并监听相关的 IP 地址和端口组合。实现此目的最简单方法是配置软件,使其绑定并监听虚拟机任意 IP 地址 (0.0.0.0) 的相关端口。如需了解详情,请参阅探测数据包的目标。
高可用性架构
内部直通式网络负载均衡器具有源于设计的高可用性。无需采用特殊步骤即可使负载均衡器具有高可用性,因为该机制不依赖于单个设备或虚拟机实例。
如需将后端虚拟机实例部署到多个可用区,请遵循以下部署建议:
如果您可以使用实例模板来部署软件,请使用地区代管实例组。区域代管式实例组可自动在多个可用区之间分配流量,提供最佳选择以避免在任何给定可用区发生潜在问题。
如果您使用区域代管实例组或非代管实例组,请对同一后端服务使用(在同一地区内)不同区域中的多个实例组。使用多个区域可防止在任何给定区域出现潜在问题。
共享 VPC 架构
下表总结了与共享 VPC 网络搭配使用的内部直通式网络负载均衡器的组件要求。如需查看示例,请参阅“预配共享 VPC”页面上的“创建内部直通式网络负载均衡器”。
| IP 地址 | 转发规则 | 后端组件 |
|---|---|---|
| 必须在后端虚拟机所在的项目中定义内部 IP 地址。 对于共享 VPC 网络中将要提供的负载均衡器,您必须在后端虚拟机所在的同一个服务项目中定义 Google Cloud 内部 IP 地址,并且该对象必须引用宿主项目中所需的共享 VPC 网络的子网。地址本身来自所引用子网的主要 IP 地址范围。 如果您在服务项目中创建内部 IP 地址,并且 IP 地址子网位于服务项目的 VPC 网络中,则内部直通式网络负载均衡器是服务项目的本地地址。您的内部直通式网络负载均衡器不在任何共享 VPC 宿主项目本地。 |
必须在后端虚拟机所在的项目中定义内部转发规则。 对于共享 VPC 网络中将要提供的负载均衡器,您必须在后端虚拟机所在的同一个服务项目中定义内部转发规则,并且该规则必须引用关联的内部 IP 地址所引用的同一个子网(位于共享 VPC 网络中)。 如果您在服务项目中创建内部转发规则,并且转发规则的子网位于服务项目的 VPC 网络中,则内部直通式网络负载均衡器是服务项目的本地地址。您的内部直通式网络负载均衡器不在任何共享 VPC 宿主项目本地。 |
在共享 VPC 情景中,后端虚拟机位于服务项目中。您必须在该服务项目中定义地区内部后端服务和健康检查。 |
流量分配
内部直通式网络负载均衡器支持各种流量分配自定义选项,包括会话亲和性、连接跟踪和故障切换。如需详细了解内部直通式网络负载均衡器如何分配流量,以及这些选项如何相互作用,请参阅内部直通式网络负载均衡器的流量分配。
配额和限制
如需了解配额和限制,请参阅负载均衡资源配额和限制。
限制
- 您无法使用 Google Cloud 控制台创建具有可用区级 NEG 后端的内部直通式网络负载均衡器。
后续步骤
- 如需配置和测试内部直通式网络负载均衡器,请参阅设置内部直通式网络负载均衡器。
- 如需为内部直通式网络负载均衡器配置 Cloud Monitoring,请参阅内部直通式网络负载均衡器日志记录和监控。
- 如需为内部直通式网络负载均衡器进行问题排查,请参阅内部直通式网络负载均衡器问题排查。
- 如需使用预构建的 Terraform 模板来简化 Google Cloud的网络基础架构的设置和管理,请探索简化的 Cloud 网络配置解决方案 GitHub 代码库。