负载均衡器在应用的多个实例间分配用户流量。负载均衡通过分散负载,降低应用出现性能问题的风险。 Google 的 Cloud Load Balancing 构建于 Maglev、Andromeda、Google Front End 和 Envoy 等可靠、高性能的技术之上,与 Google 自己的产品所采用的技术相同。
Cloud Load Balancing 提供了全面的区域级应用和网络负载均衡器组合。使用我们的负载均衡器,每秒可在单个区域中的后端之间分配数百万个请求。您可以将这些负载均衡器配置为可通过单个任播 IP 地址访问。使用我们的区域级代理负载均衡器可实现强大的管辖区控制,并将后端和代理保留在您的区域中,而无需担心 TLS/SSL 分流。使用我们的区域级直通式负载均衡器可快速将多个协议路由到具有直接服务器返回 (DSR) 高性能的后端。
Cloud Load Balancing 的主要功能
Cloud Load Balancing 提供以下负载均衡器功能:
单个任播 IP 地址。借助 Cloud Load Balancing,单个任播 IP 地址可作为所有后端实例的前端。
无缝自动扩缩。Cloud Load Balancing 可以随着您的用户和流量的增长而扩缩,包括通过将流量转移到其他可以接收流量的可用区中的后端,轻松处理突发的即时流量高峰。自动扩缩无需预热:您可以在短短几秒的时间里从零扩容至所有流量。Cloud Load Balancing 能够对用户、流量、网络、后端健康状况和其他相关条件的变化即时做出响应。
软件定义的负载均衡。Cloud Load Balancing 是一项适用于所有流量的完全分布式、软件定义的代管式服务。Cloud Load Balancing 不是基于实例或基于设备的解决方案,因此您不会受限于物理负载均衡基础架构,也不会面对基于实例的负载均衡器固有的高可用性、扩缩和管理难题。
第 4 层和第 7 层负载均衡。使用基于第 4 层的负载均衡,根据来自网络和传输层协议的数据(例如 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6)来定向流量。基于第 7 层的负载均衡,根据特性(例如 HTTP 标头和统一资源标识符)添加请求路由决策。
外部和内部负载均衡。定义负载均衡器是可用于外部访问还是内部访问。如果客户端需要通过互联网访问您的应用,您可以使用外部负载均衡器。当客户端位于Trusted Cloud内部时,您可以使用内部负载均衡器。如需了解详情,请参阅外部负载均衡与内部负载均衡。
Trusted Cloud 负载均衡器的类型
Cloud Load Balancing 提供两种类型的负载均衡器:应用负载均衡器和网络负载均衡器。如果您需要为具有 HTTP(S) 流量的应用配置第 7 层负载均衡器,则需要选择应用负载均衡器。如果您需要支持 TLS 分流的第 4 层负载均衡器(使用代理负载均衡器),或者需要对 UDP、ESP 和 ICMP 等 IP 协议的支持(使用直通式负载均衡器),则可以选择网络负载均衡器。
应用负载均衡器
应用负载均衡器是基于代理的第 7 层负载均衡器,可让您在任播 IP 地址后面运行和扩缩服务。应用负载均衡器会将 HTTP 和 HTTPS 流量分配到各个 Trusted Cloud 平台(例如 Compute Engine 和 Google Kubernetes Engine [GKE])上托管的后端,以及Trusted Cloud之外的外部后端。
应用负载均衡器可以在外部或内部进行部署,具体取决于应用是面向互联网还是内部。在这两种情况下,这些负载均衡器都仅支持单个区域中的后端。
- 区域级外部应用负载均衡器在 Envoy 代理上作为托管式服务实现。客户端可以从互联网上的任何位置连接到这些负载均衡器。应用负载均衡器使用开源 Envoy 代理来启用高级流量管理功能。
- 区域级内部应用负载均衡器基于 Andromeda 网络虚拟化栈和开源 Envoy 代理构建。此负载均衡器可对第 7 层应用数据执行内部基于代理的负载均衡。负载均衡器使用内部 IP 地址,该地址只能由同一 VPC 网络中的客户端或连接到您的 VPC 网络的客户端访问。
下图显示了一个应用负载均衡器架构示例。
网络负载均衡器
网络负载均衡器是第 4 层负载均衡器,可处理 TCP、UDP 或其他 IP 协议流量。这些负载均衡器可用作代理负载均衡器或直通式负载均衡器。您可以根据应用的需求及其需要处理的流量类型来选择负载均衡器。如果您要配置支持本地和其他云环境中的高级流量控制和后端的反向代理负载均衡器,请选择代理网络负载均衡器。如果您要保留客户端数据包的来源 IP 地址、希望服务器直接返回响应,或者想要处理各种 IP 协议(例如 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6),请选择直通式网络负载均衡器。
代理网络负载均衡器
代理网络负载均衡器是第 4 层反向代理负载均衡器,用于将 TCP 流量分配到 Trusted CloudVPC 网络中的虚拟机 (VM) 实例。流量会在负载均衡层终结,然后使用 TCP 转发到最近的可用后端。
代理网络负载均衡器可以在外部或内部进行部署,具体取决于应用是面向互联网还是内部。在这两种情况下,这些负载均衡器都仅支持单个区域中的后端。
- 区域级外部代理网络负载均衡器是第 4 层负载均衡器,用于将来自互联网的流量分配到 Trusted Cloud VPC 网络、本地或其他云环境中的后端。
- 区域级内部代理网络负载均衡器是基于 Envoy 代理的第 4 层区域级负载均衡器,可让您在内部 IP 地址后面运行和扩缩 TCP 服务流量,该地址只能由同一 VPC 网络中的客户端或连接到您的 VPC 网络的客户端访问。
下图展示了一个代理网络负载均衡器架构示例。
直通式网络负载均衡器
直通式网络负载均衡器是第 4 层区域级直通负载均衡器。这些负载均衡器会在与负载均衡器位于同一区域的后端之间分配流量。它们是使用 Andromeda 虚拟网络和 Google Maglev 实现的。
顾名思义,这些负载均衡器不是代理。经过负载均衡的数据包由具有数据包的来源和目的地 IP 地址、协议的后端虚拟机接收,并且如果协议基于端口,则来源和目的地端口保持不变。经过负载均衡的连接会在后端终结。来自后端虚拟机的响应直接发送到客户端,而不是通过负载均衡器返回。其行业术语称为直接服务器返回 (DSR)。
如以下图片所示,这些负载均衡器以两种模式部署,具体取决于负载均衡器是面向互联网的负载均衡器还是内部负载均衡器。
外部直通式网络负载均衡器基于 Maglev 构建。无论网络服务层级如何,客户端都可以从互联网上的任何位置连接到这些负载均衡器。负载均衡器还可以接收来自具有外部 IP 地址的 Trusted Cloud 虚拟机的流量,或者接收来自可通过 Cloud NAT 或基于实例的 NAT 访问互联网的 Trusted Cloud 虚拟机的流量。
内部直通式网络负载均衡器基于 Andromeda 网络虚拟化堆栈构建而成。借助内部直通式网络负载均衡器,您可以在只能由位于同一 VPC 网络中的系统或连接到 VPC 网络的系统访问的内部负载均衡 IP 地址后面进行 TCP/UDP 流量负载均衡。此负载均衡器只能在高级层级中配置。
下图展示了直通式网络负载均衡器架构示例。
Trusted Cloud 负载均衡器的底层技术
下表列出了每个Trusted Cloud 负载均衡器所基于的基础技术。
- Google 前端 (GFE) 是位于 Google 入网点 (PoP) 的软件定义分布式系统,可与其他系统和控制平面协同执行全球负载均衡。
- Andromeda 是 Google Cloud 的软件定义网络虚拟化堆栈。
- Maglev 是用于网络负载均衡的分布式系统。
- Envoy 是专为云原生应用设计的开源边缘和服务代理。
负载均衡器 | 技术 |
---|---|
区域级外部应用负载均衡器 | Envoy |
区域级内部应用负载均衡器 | Envoy |
区域级外部代理网络负载均衡器 | Envoy |
区域级内部代理网络负载均衡器 | Envoy |
外部直通式网络负载均衡器 | Maglev |
内部直通式网络负载均衡器 | Andromeda |
选择负载均衡器
如需确定要使用的 Cloud Load Balancing 产品,您必须先确定负载均衡器必须处理的流量类型。一般来说,如果您需要为具有 HTTP(S) 流量的应用提供灵活的功能集,则需要选择应用负载均衡器。当您需要大规模分流 TLS 或支持 UDP,或者需要向应用公开客户端 IP 地址时,应选择网络负载均衡器。
根据您的应用是外部应用(面向互联网)还是内部应用,您可以进一步缩小选择范围。
下图显示了 Cloud Load Balancing 的所有可用部署模式。 如需了解详情,请参阅选择负载均衡器指南。
Trusted Cloud 负载均衡器类型摘要
下表提供了详细信息,例如运行每个负载均衡器的网络服务层,以及其负载均衡方案。
负载均衡器 | 部署模式 | 流量类型 | 网络服务层级 | 负载均衡方案1 |
---|---|---|---|---|
应用负载均衡器 | 区域外部 | HTTP 或 HTTPS | 高级层级或标准层级 | EXTERNAL_MANAGED |
区域级内部 | HTTP 或 HTTPS | 优质层级 | INTERNAL_MANAGED | |
代理网络负载均衡器 | 区域外部 | TCP | 高级层级或标准层级 | EXTERNAL_MANAGED |
区域级内部 | 无 SSL 分流的 TCP | 优质层级 | INTERNAL_MANAGED | |
直通式网络负载均衡器 | 外部 始终为区域级 |
TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 | 高级层级或标准层级 | 外部 |
内部 始终为区域级 |
TCP、UDP、ICMP、ICMPv6、SCTP、ESP、AH 和 GRE | 优质层级 | INTERNAL |
1 负载均衡方案是负载均衡器转发规则和后端服务的一个特性,指示负载均衡器是可用于内部流量还是外部流量。
EXTERNAL_MANAGED
或 INTERNAL_MANAGED
中的术语“托管式”表示负载均衡器作为 Google Front End (GFE) 或开源 Envoy 代理上的托管式服务实现。在托管式负载均衡方案中,请求会路由到 GFE 或 Envoy 代理。
接口
您可以使用以下接口配置和更新负载均衡器:
Google Cloud CLI:Google Cloud CLI 中包含的命令行工具;本文档经常调用此工具来完成任务。如需全面了解此工具,请参阅 gcloud CLI 指南。您可以在
gcloud compute
命令组中找到与负载均衡相关的命令。您还可以使用
--help
标志获取有关任何gcloud
命令的详细帮助。gcloud compute http-health-checks create --help
Trusted Cloud 控制台:负载均衡任务可使用 Trusted Cloud 控制台来完成。
REST API:所有负载均衡任务均可使用 Cloud Load Balancing API 来完成。API 参考文档介绍了可供您使用的资源和方法。
Terraform:使用开源基础架构即代码工具(如 Terraform)预配、更新和删除 Trusted Cloud负载均衡基础架构。
后续步骤
- 如需帮助确定哪种 Trusted Cloud 负载均衡器最符合您的需求,请参阅选择负载均衡器。
- 如需了解不同类型的 Trusted Cloud 负载均衡器的组件,请参阅 Cloud Load Balancing 资源模型。
- 如需查看 Cloud Load Balancing 提供的负载均衡功能的比较概览,请参阅负载均衡器功能比较。
- 如需使用预构建的 Terraform 模板来简化 Trusted Cloud的网络基础架构的设置和管理,请探索简化的 Cloud 网络配置解决方案 GitHub 代码库。