负载均衡器在应用的多个实例间分配用户流量。负载均衡通过分散负载,降低应用出现性能问题的风险。
关于 Cloud Load Balancing
Cloud Load Balancing 是一项完全分布式、软件定义的代管式服务。它并非基于硬件,因此您无需管理物理负载均衡基础架构。
Cloud Load Balancing 构建于 Google 所用的前端服务基础架构之上。它支持每秒处理超过一百万次查询,并且保证一致的高性能和低延迟。使用 Cloud Load Balancing,您可以在尽可能接近用户的位置传送内容。流量可通过 80 多个独立的全球负载均衡位置进入 Cloud Load Balancing,并在大部分过程中保持在 Google 的快速专用网络主干上。如果需要,流量会尽可能在靠近用户的位置传递给公共互联网。
Google Cloud 提供以下负载均衡功能:
单个任播 IP 地址。凭借 Cloud Load Balancing,您可以将一个任播 IP 地址用作全球各区域中所有后端实例的前端。Cloud Load Balancing 提供跨区域负载均衡功能,包括自动多区域故障切换(即在主要后端健康状况不佳时,可将流量转移到故障切换后端)。Cloud Load Balancing 能够对用户、流量、网络、后端健康状况和其他相关条件的变化即时做出响应。
软件定义的负载均衡。Cloud Load Balancing 是一项适用于所有流量的完全分布式、软件定义的代管式服务。Cloud Load Balancing 不是基于实例或基于设备的解决方案,因此您不会受限于物理负载均衡基础架构,也不会面对基于实例的负载均衡器固有的高可用性 (HA)、规模和管理难题。
无缝自动扩缩。Cloud Load Balancing 可以随着您的用户和流量的增长而调整,包括通过将流量转移到全球其他可以接收流量的区域,轻松处理数量巨大的瞬间意外峰值。自动扩缩功能无需预热:您可以在短短几秒的时间里从零调节至所有流量。
第 4 层和第 7 层负载均衡。使用基于第 4 层的负载均衡,根据来自网络和传输层协议的数据(例如 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6)来定向流量。基于第 7 层的负载均衡,根据特性(例如 HTTP 标头和统一资源标识符)添加请求路由决策。
外部和内部负载均衡。当用户通过互联网访问您的应用时,您可以使用外部负载均衡;当客户端位于 Google Cloud 内部时,您可以使用内部负载均衡。
全球和区域负载均衡。将负载均衡的资源分布到单个或多个区域,以在靠近您的用户的位置终止连接,并满足您的高可用性要求。
高级功能支持。Cloud Load Balancing 支持 IPv6 全球负载均衡、基于来源 IP 地址的流量导向、WebSocket、用户定义的请求标头和专用 VIP 地址协议转发等功能。
它还包括以下集成:
- 与 Cloud CDN 集成,实现缓存内容传送。全球外部 HTTP(S) 负载均衡器和全球外部 HTTP(S) 负载均衡器(经典版)支持 Cloud CDN。
- 与 Google Cloud Armor 集成,可保护您的基础架构免受分布式拒绝服务 (DDoS) 攻击和其他定向应用攻击。始终开启的 DDoS 防护适用于全球外部 HTTP(S) 负载均衡器、全球外部 HTTP(S) 负载均衡器(经典版)、外部 TCP 代理负载均衡器、外部 SSL 代理负载均衡器和网络负载均衡器。此外,Google Cloud Armor 仅支持网络负载均衡器的高级网络 DDoS 防护。如需了解详情,请参阅配置高级网络 DDoS 防护。
Google Cloud 负载均衡器摘要
下图总结了可用的 Cloud Load Balancing 产品。
下表提供了有关各负载均衡器的更多具体信息。
负载均衡器类型 | 流量类型 | IP 地址 | 全球性或区域性 | 网络服务层级 | 负载均衡方案 † | 负载均衡器前端端口 | 代理或直通 |
---|---|---|---|---|---|---|---|
全球外部 HTTP(S) 负载均衡器 | HTTP 或 HTTPS | IPv4,IPv6 | 全球 | 仅优质 | EXTERNAL_MANAGED | 在端口 80 或 8080 上处理 HTTP 流量;在端口 443 上处理 HTTPS 流量 | Proxy(代理) |
全球外部 HTTP(S) 负载均衡器(经典版) | HTTP 或 HTTPS | IPv4、IPv6(仅限高级层级中的 IPv6) | 在优质层级为全球级。标准层级为区域性。 | 优质或标准 | EXTERNAL | 在端口 80 或 8080 上处理 HTTP 流量;在端口 443 上处理 HTTPS 流量 | Proxy(代理) |
区域级外部 HTTP(S) 负载均衡器 | HTTP 或 HTTPS | 仅限 IPv4 | 区域级 | 仅限标准 | EXTERNAL_MANAGED | 在端口 80 或 8080 上处理 HTTP 流量;在端口 443 上处理 HTTPS 流量 | Proxy(代理) |
内部 HTTP(S) 负载均衡器 | HTTP 或 HTTPS | 仅限 IPv4 | 区域级 | 仅优质 | INTERNAL_MANAGED | 在端口 80 或 8080 上处理 HTTP 流量;在端口 443 上处理 HTTPS 流量 | Proxy(代理) |
外部 SSL 代理负载均衡器 | 具有 SSL 分流的 TCP | IPv4、IPv6(仅限高级层级中的 IPv6) | 在优质层级为全球级。标准层级为区域性。 | 优质或标准 | EXTERNAL | 1-65535 之间的一个端口 | 代理 |
外部 TCP 代理负载均衡器 | 无 SSL 分流的 TCP | IPv4、IPv6(仅限高级层级中的 IPv6) | 在优质层级为全球级。标准层级为区域性。 | 优质或标准 | EXTERNAL | 1-65535 之间的一个端口 | 代理 |
内部区域 TCP 代理负载均衡器 | 无 SSL 分流的 TCP | 仅限 IPv4 | 区域级 | 高级 | INTERNAL_MANAGED | 不限 | 代理 |
外部 TCP/UDP 网络负载均衡器 | TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 | IPv4、IPv6(仅限高级层级中的 IPv6) | 区域级 | 优质或标准 | EXTERNAL | 不限 | 直通 |
内部 TCP/UDP 负载均衡器 | TCP 或 UDP | IPv4,IPv6 | 区域性后端、区域性前端(支持全球访问) | 仅优质 | INTERNAL | 不限 | 直通 |
† 负载均衡方案是负载均衡器转发规则和后端服务的一个特性,指示负载均衡器是可用于内部流量还是外部流量。可能的值包括 EXTERNAL
、EXTERNAL_MANAGED
、INTERNAL
和 INTERNAL_MANAGED
。
负载均衡方案中的术语 *_MANAGED
表示负载均衡器作为 Google Front End (GFE) 上的代管式服务实现,或者作为开源 Envoy 代理上的代管式服务实现。在 *_MANAGED
负载均衡方案中,请求会路由到 GFE 或 Envoy 代理。
选择负载均衡器
如需确定要使用的 Cloud Load Balancing 产品,您必须先确定负载均衡器必须处理的流量类型、您需要全球级还是区域级负载均衡、外部还是内部负载均衡,以及代理还是直通式负载均衡。如需详细了解上述各项决策,请参阅选择负载均衡器。
然后使用以下决策树来确定您的客户端、协议和网络配置可以使用的负载均衡器。
Google Cloud 负载均衡器的底层技术
本部分详细介绍各类 Google Cloud 负载均衡器,包括跳转至概览文档的链接,以便您更深入地了解相关信息。
- Google 前端 (GFE) 是位于 Google 入网点 (PoP) 的软件定义分布式系统,可与其他系统和控制层面协同执行全球负载均衡。
- Andromeda 是 Google Cloud 的软件定义网络虚拟化堆栈。
- Maglev 是用于网络负载均衡的分布式系统。
- Envoy 代理是专为云原生应用设计的开源边缘和服务代理。
负载均衡器 | 底层技术 |
---|---|
全球外部 HTTP(S) 负载均衡器 | Envoy、GFE |
全球外部 HTTP(S) 负载均衡器(经典版) | GFE |
区域级外部 HTTP(S) 负载均衡器 | Envoy、Maglev |
内部 HTTP(S) 负载均衡器 | Andromeda、Envoy |
外部 TCP 代理负载均衡器 | GFE |
外部 SSL 代理负载均衡器 | GFE |
内部区域级 TCP 代理负载均衡器 | Andromeda、Envoy |
外部 TCP/UDP 网络负载均衡器 | Maglev |
内部 TCP/UDP 负载均衡器 | Andromeda |
内部 HTTP(S) 负载均衡
内部 HTTP(S) 负载均衡建立在 Andromeda 网络虚拟化堆栈上,是基于开源 Envoy 代理的代管式服务。此负载均衡器为第 7 层应用数据提供内部基于代理的负载均衡。您可以使用网址映射来指定流量路由方式。该负载均衡器使用内部 IP 地址作为后端的前端。
外部 HTTP(S) 负载均衡
HTTP(S) 负载均衡的实现因负载均衡器模式而异。
具有高级流量管理功能的全球外部 HTTP(S) 负载均衡器是以 GFE 为基础实现的。这些 GFE 分布于全球各地,可通过 Google 的全球网络和控制平面协同运作。GFE 可提供多区域负载均衡,进而将流量定向至健康状况良好、有充足容量的最近后端,并尽可能在离用户最近的位置终止 HTTP(S) 流量。此外,全局外部 HTTP(S) 负载均衡器使用开源 Envoy 代理来启用高级流量管理功能。全局外部 HTTP(S) 负载均衡器仅在优质层级中受支持。
全局外部 HTTP(S) 负载均衡器(经典版)也在 GFE 上实现。它是优质层级中的全球负载均衡器,但可以配置为标准层级中的有效区域级。区域有效性表示,虽然后端服务是全球性的,但如果选择标准层级,外部转发规则和外部 IP 地址必须是区域性的,并且附加到全球性后端服务的后端必须与转发规则和 IP 地址位于同一区域中。
区域级外部 HTTP(S) 负载均衡器是一种基于开源 Envoy 代理的代管式服务,可实现高级流量管理功能。这是一个仅在标准层级中支持的区域级 HTTP(S) 负载均衡器。
内部 TCP/UDP 负载均衡
内部 TCP/UDP 负载均衡基于 Andromeda 网络虚拟化堆栈构建而成。借助内部 TCP/UDP 负载均衡,您可以通过只能由内部虚拟机 (VM) 实例访问的内部负载均衡 IP 地址来均衡 TCP/UDP 流量负载。使用内部 TCP/UDP 负载均衡时,系统会配置内部负载均衡 IP 地址作为内部后端实例的前端。因此您的负载均衡服务只需使用内部 IP 地址。总体而言,您的配置会变得更加简单。
内部 TCP/UDP 负载均衡支持区域代管式实例组,因此您可以在整个区域内实现自动扩缩,保护您的服务免遭可用区故障的影响。
外部 TCP/UDP 网络负载均衡
网络负载均衡基于 Maglev。这种负载均衡器可让您根据传入的 IP 协议数据(包括地址、协议和可选端口)来平衡系统的流量负载。它是一种区域性非代理负载均衡系统。也就是说,网络负载均衡器是一种直通式负载均衡器,因此它不会代理来自客户端的连接。
基于后端服务的网络负载均衡器支持 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 流量。
基于目标池的网络负载均衡器仅支持 TCP 或 UDP 流量。
外部 SSL 代理负载均衡
外部 SSL 代理负载均衡是以全球分布的 GFE 为基础实现的。如果您选择 Network Service Tiers 的优质层级,外部 SSL 代理负载均衡器将面向全球。在优质层级中,您可以在多个区域部署后端,该负载均衡器会自动将用户流量定向到有处理能力的最近区域。如果您选择标准层级,外部 SSL 代理负载均衡器只能在单个区域的各后端之间引导流量。
外部 TCP 代理负载均衡
外部 TCP 代理负载均衡是以全球分布的 GFE 为基础实现的。如果您选择 Network Service Tiers 的优质层级,外部 TCP 代理负载均衡器将面向全球。在优质层级中,您可以在多个区域部署后端,该负载均衡器会自动将用户流量定向到有处理能力的最近区域。如果您选择标准层级,外部 TCP 代理负载均衡器只能在单个区域的各后端之间引导流量。
内部区域级 TCP 代理负载均衡
内部区域 TCP 代理负载均衡器是一种基于 Envoy 代理的区域第 4 层负载均衡器,可让您在只能由同一 VPC 网络中的客户端或连接到您的 VPC 网络的客户端访问的内部 IP 地址后面运行和扩缩 TCP 服务流量。
负载均衡器将 TCP 流量分发到托管在 Google Cloud、本地或其他云环境中的后端。此负载均衡器只能使用内部 IP 地址在 VPC 网络的选定区域内访问。
接口
您可以使用以下接口配置和更新负载均衡器:
Google Cloud CLI:Google Cloud CLI 中包含的命令行工具;本文档经常调用此工具来完成任务。如需全面了解此工具,请参阅 gcloud CLI 指南。您可以在
gcloud compute
命令组中找到与负载均衡相关的命令。您还可以使用
--help
标志获取有关任何gcloud
命令的详细帮助:gcloud compute http-health-checks create --help
Google Cloud 控制台:负载均衡任务可使用 Google Cloud 控制台来完成。
REST API:所有负载均衡任务均可使用 Cloud Load Balancing API 来完成。API 参考文档介绍了可供您使用的资源和方法。
Terraform:使用开源基础架构即代码工具(如 Terraform)预配、更新和删除 Google Cloud 负载均衡基础架构。
后续步骤
- 如需帮助确定哪个 Google Cloud 负载均衡器最符合您的需求,请参阅选择负载均衡器。
- 如需查看 Cloud Load Balancing 提供的负载均衡功能的比较概览,请参阅负载均衡器功能比较。