外部 TCP/UDP 网络负载平衡概览

Google Cloud 外部 TCP/UDP 网络负载平衡(此后称为网络负载平衡)是区域级的直通式负载平衡器。 网络负载平衡器在同一区域中的虚拟机实例之间分配外部流量。

您可以为 TCP、UDP、ESP 和 ICMP 流量配置网络负载均衡器。对 ESP 和 ICMP 的支持为预览版

网络负载平衡器可以接收以下来源的流量:

  • 互联网上的任何客户端
  • 具有外部 IP 的 Google Cloud 虚拟机
  • 可通过 Cloud NAT 或基于实例的 NAT 访问互联网的 Google Cloud 虚拟机

网络负载平衡具有以下特点:

  • 网络负载平衡是一项代管式服务。
  • 网络负载平衡是使用 Andromeda 虚拟网络Google Maglev 实现的。
  • 网络负载平衡器不是代理。
    • 经过负载平衡的数据包由具有数据包的来源和目的地 IP 地址、协议的后端虚拟机接收,并且如果协议基于端口,则来源和目的地端口保持不变。
    • 经过负载平衡的连接由后端虚拟机终止。
    • 来自后端虚拟机的响应直接发送到客户端,而不是通过负载平衡器返回。其行业术语称为直接服务器返回

下图展示了加利福尼亚、纽约和新加坡的用户。他们均连接到后端资源(myapp、test 和 travel)。当新加坡的用户连接到美国西部后端时,流量会进入离新加坡最近的区域,因为范围是任播的。然后,流量将路由到区域后端。

三个区域后端和三条转发规则(点击放大)
网络负载平衡示例(点击放大)

范围

网络负载平衡器会平衡来自互联网的流量。

网络负载平衡器按区域划分范围,而非全球范围。这意味着网络负载平衡器不能跨多个区域。负载平衡器可以为一个区域内的所有可用区提供服务。

使用场景

在以下情况可使用网络负载平衡:

  • 您需要对非 TCP 流量进行负载平衡,或者需要对其他负载平衡器不支持的 TCP 端口进行负载平衡。
  • 可以通过后端解密 SSL 流量,而不使用负载平衡器。网络负载平衡器无法执行此任务。当后端解密 SSL 流量时,虚拟机的 CPU 负担增大。
  • 您可以自行管理后端虚拟机的 SSL 证书。由 Google 管理的 SSL 证书仅适用于 HTTP(S) 负载平衡和 SSL 代理负载平衡。
  • 您需要转发未被代理的原始数据包。 例如,您需要保留客户端来源 IP 地址。
  • 您的现有设置使用直通式负载平衡器,您希望原封不动地将它迁移。

GKE 应用的负载平衡

如果要在 GKE 中构建应用,我们建议您使用内置的 GKE 服务控制器,该控制器代表 GKE 用户部署 Google Cloud 负载平衡器。这与独立负载平衡架构相同,只不过其生命周期完全由 GKE 完全自动化并进行控制。

相关 GKE 文档:

架构

网络负载平衡器的架构取决于您是使用基于后端服务的网络负载平衡器还是基于目标池的网络负载平衡器。

基于后端服务的网络负载均衡器

您可以使用区域后端服务来创建网络负载均衡器,该后端服务定义负载均衡器的行为,以及将流量分配给其后端实例组的方式。后端服务可实现旧版目标池不支持的功能,例如支持非旧版健康检查(TCP、SSL、HTTP、HTTPS 或 HTTP/2)、使用代管式实例组进行自动扩缩、连接排空和可配置的故障切换政策

基于后端服务的网络负载均衡器可用于对 TCP、UDP、ESP 和 ICMP 流量进行负载平衡。

如需了解架构详情,请参阅使用区域后端服务的网络负载平衡器

此外,您也可以将现有基于目标池的网络负载平衡器转换为使用后端服务。如需查看相关说明,请参阅将网络负载均衡器从目标池转换到后端服务

基于目标池的网络负载均衡器

目标池是 Google Cloud 的网络负载平衡器支持的旧版后端。目标池定义了一组应从负载均衡器接收传入流量的实例。

基于目标池的网络负载均衡器仅支持 TCP 或 UDP 流量。

如需了解架构详情,请参阅使用目标池后端的网络负载均衡器

比较网络负载平衡和其他 Google Cloud 负载平衡器

如需了解各种 Google Cloud 负载平衡器之间的具体区别,请参阅以下文档: