直通式网络负载均衡器是第 4 层区域级直通负载均衡器。这些负载均衡器会在与负载均衡器位于同一区域的后端之间分配流量。顾名思义,直通网络负载均衡器不是代理。经过负载均衡的数据包由具有数据包的来源和目的地 IP 地址、协议的后端虚拟机接收,并且如果协议基于端口,则来源和目的地端口保持不变。经过负载均衡的连接会在后端终结。来自后端虚拟机的响应直接发送到客户端,而不是通过负载均衡器返回。其行业术语称为直接服务器返回 (DSR)。
下图展示了直通式网络负载均衡器架构示例。
在以下情况下,您可以使用直通式网络负载均衡器:
- 您需要将原始客户端数据包转发到非代理后端,例如,您需要保留客户端来源 IP 地址。
- 您需要对 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 流量进行负载均衡,或者需要对其他负载均衡器不支持的 TCP 端口进行负载均衡。
- 可以通过后端解密 SSL 流量,而不使用负载均衡器。直通网络负载均衡器无法执行此任务。当后端解密 SSL 流量时,虚拟机的 CPU 负担增大。
- 您可以自行管理后端虚拟机的 SSL 证书。由 Google 管理的 SSL 证书仅适用于代理负载均衡器。
- 您的现有设置使用直通式负载均衡器,您希望原封不动地将它迁移。
直通式网络负载均衡器可在以下部署模式中使用。
范围 | 流量类型 | 网络服务层级 | 负载均衡方案 † | IP 地址 | 前端端口 | Links | |
---|---|---|---|---|---|---|---|
外部直通式网络负载均衡器
负载均衡来自互联网客户端的流量。 |
区域级 | TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 | 优质或标准 | 外部 | IPv4 和 IPv6 | 单个端口、端口范围或所有端口 | 架构详情 |
内部直通式网络负载均衡器
在 VPC 网络或连接到 VPC 网络的网络中对流量进行负载均衡。 |
区域级 | TCP、UDP、ICMP、ICMPv6、SCTP、ESP、AH 和 GRE | 高级 | INTERNAL | IPv4 和 IPv6 | 单个端口、端口范围或所有端口 | 架构详情 |
外部直通网络负载均衡器
外部直通式网络负载均衡器是区域级第 4 层负载均衡器,用于在负载均衡器所在区域中的后端(实例组或网络端点组 (NEG))之间分配外部流量。这些后端必须位于同一区域和项目中,但可以位于不同的 VPC 网络中。 这些负载均衡器基于 Maglev 和 Andromeda 网络虚拟化栈构建。
外部直通式网络负载均衡器可以接收以下来源的流量:
- 互联网上的任何客户端
- 具有外部 IP 的 Google Cloud 虚拟机
- 可通过 Cloud NAT 或基于实例的 NAT 访问互联网的 Google Cloud 虚拟机
外部直通式网络负载均衡器不是代理。该负载均衡器本身不会终止用户连接。经过负载均衡的数据包会发送到后端虚拟机,并且数据包的来源和目的地 IP 地址、协议和端口(如适用)保持不变。然后,后端虚拟机会终止用户连接。来自后端虚拟机的响应会直接发送到客户端,而不是通过负载均衡器返回。此过程称为直接服务器返回 (DSR)。
下图展示了在 us-central1
区域中配置的外部直通式网络负载均衡器,其后端位于同一区域。流量从新加坡用户路由到 us-central1
中的负载均衡器(转发规则 IP 地址 120.1.1.1
)。
如果负载均衡器的 IP 地址是高级层级,流量会经由 Google 的高品质全球主干网,使数据包在离客户端最近的 Google 边缘对接点进入和离开 Google 网络。如果负载均器的 IP 地址是标准层级,则流量会在离配置负载均衡器的 Google Cloud 区域最近的对接点进入和离开 Google 网络。
外部直通网络负载均衡器的架构取决于您是使用后端服务还是目标池来设置后端。
基于后端服务的负载均衡器
您可以使用区域级后端服务创建外部直通式网络负载均衡器,该后端服务定义负载均衡器的行为,以及将流量分配到后端的方式。基于后端服务的外部直通式网络负载均衡器支持 IPv4 和 IPv6 流量、多种协议(TCP、UDP、ESP、GRE、ICMP 和 ICMPv6)、托管式和非托管式实例组后端、具有 GCE_VM_IP
端点的可用区级网络端点组 (NEG) 后端、精细的流量分配控制、故障切换政策,并且可让您使用与要分配的流量类型(TCP、SSL、HTTP、HTTPS 或 HTTP/2)匹配的非旧版健康检查。
负载均衡到 Google Kubernetes Engine (GKE) 使用内置的 GKE Service 控制器进行处理。此外,App Hub(预览版)支持基于后端服务的外部直通式网络负载均衡器。
如需了解架构详情并详细了解受支持的功能,请参阅基于后端服务的外部直通式网络负载均衡器概览。
您可以将现有基于目标池的负载均衡器转换为使用后端服务。如需查看相关说明,请参阅将负载均衡器从目标池迁移到后端服务。
基于目标池的负载均衡器
目标池是外部直通式网络负载均衡器支持的旧版后端。目标池定义了一组应从负载均衡器接收传入流量的实例。
基于目标池的负载均衡器仅支持 TCP 或 UDP 流量。基于目标池的外部直通网络负载均衡器的转发规则仅支持外部 IPv4 地址。
如需了解架构详情,请参阅基于目标池的外部直通网络负载均衡器概览。
内部直通式网络负载均衡器
内部直通式网络负载均衡器在 Virtual Private Cloud (VPC) 网络中同一区域内的内部虚拟机 (VM) 实例之间分配流量。它们可让您在只能由位于同一 VPC 网络中的系统或连接到 VPC 网络的系统访问的内部 IP 地址后面运行和扩缩服务。
这些负载均衡器构建在 Andromeda 网络虚拟化堆栈上。它们仅支持区域后端,因此您可以在整个区域内实现自动扩缩,保护您的服务免遭可用区故障的影响。此外,此负载均衡器只能在高级层级中配置。
内部直通式网络负载均衡器适用于许多应用场景。以下部分展示了几个概要示例。
访问连接的网络
您可以从使用以下方式连接的网络访问 VPC 网络中的内部直通式网络负载均衡器:
- VPC 网络对等互连
- Cloud VPN 和 Cloud Interconnect
如需查看详细示例,请参阅内部直通式网络负载均衡器和连接的网络。
三层式 Web 服务
您可以将内部直通式网络负载均衡器与其他负载均衡器结合使用。例如,如果您合并了外部应用负载均衡器,则外部应用负载均衡器就是 Web 层,且依赖于内部直通网络负载均衡器背后的服务。
下图描述了使用外部应用负载均衡器和内部直通式网络负载均衡器的三层配置示例:
具有全球访问权限的三层式 Web 服务
如果您启用全球访问权限,则 Web 层虚拟机可以位于其他区域,如下图所示。
此多层应用示例会显示以下内容:
- 面向互联网的全球可用 Web 层,可通过外部应用负载均衡器对流量进行负载均衡。
us-east1
地区中的内部后端负载均衡数据库层,可通过全球 Web 层访问。europe-west1
地区中属于 Web 层的客户端虚拟机,可访问位于us-east1
中的内部负载均衡数据库层。
将内部直通式网络负载均衡器用作下一个跃点
使用内部直通式网络负载均衡器时,您可以将其作为数据包沿其通往最终目的地的路径转发到的下一个网关。为此,您需要将该负载均衡器设置为自定义静态路由中的下一个跃点。
无论协议(TCP、UDP 或 ICMP)如何,部署为自定义路由中下一个跃点的内部直通式网络负载均衡器都会处理所有流量。
下面是一个使用内部直通式网络负载均衡器作为 NAT 网关的下一个跃点的示例架构。您可以通过内部直通式网络负载均衡器将流量路由到防火墙或网关虚拟设备后端。
其他使用场景包括:
- 中心辐射型拓扑:使用 VPC 网络对等互连来交换下一个跃点路由 - 您可以使用位于
hub
VPC 中的下一个跃点防火墙虚拟设备配置中心辐射型拓扑。使用负载均衡器作为hub
VPC 网络中的下一个跃点的路由可以在每个spoke
网络中使用。 - 负载均衡到后端虚拟机上的多个网络接口(
nic0
到nic7
)。
如需详细了解这些应用场景,请参阅内部直通式网络负载均衡器作为下一个跃点。
内部直通式网络负载均衡器和 GKE
如需详细了解 GKE 如何为 Service 创建内部直通式网络负载均衡器,请参阅 GKE 文档中的 LoadBalancer Service 概念。
内部直通式网络负载均衡器和 App Hub
内部直通式网络负载均衡器使用的资源可以在 App Hub(预览版)中指定为服务。
后续步骤
- 如需了解有关内部直通式网络负载均衡器的架构详细信息,请参阅内部直通式网络负载均衡器架构概览。
- 如需了解有关外部直通式网络负载均衡器的架构详细信息,请参阅外部直通式网络负载均衡器架构概览。