Cloud Load Balancing 支持将流量负载均衡到超出 Google Cloud 端点的端点(例如本地数据中心和其他可使用混合连接访问的公有云)。
混合策略是一种切实可行的解决方案,可让您适应不断变化的市场需求并逐步对应用进行现代化改造。这可能是用于支持迁移到基于云的现代解决方案的临时混合部署,也可以是组织的 IT 基础架构的永久固定装置。
设置混合负载均衡还可以将 Cloud Load Balancing 的网络功能的优势应用于 Google Cloud 之外的现有基础架构上运行的服务。
以下 Google Cloud 负载均衡器支持混合负载均衡:
- 外部应用负载均衡器:全球外部应用负载均衡器、传统应用负载均衡器和区域级外部应用负载均衡器
- 内部应用负载均衡器:跨区域内部应用负载均衡器和区域级内部应用负载均衡器
- 外部代理网络负载均衡器:全球外部代理网络负载均衡器、传统代理网络负载均衡器和区域级外部代理网络负载均衡器
- 内部代理网络负载均衡器:区域级内部代理网络负载均衡器和跨区域内部代理网络负载均衡器
本地服务和其他云服务被视为与其他任何 Cloud Load Balancing 后端一样。主要区别在于使用混合连接 NEG 来配置这些后端的端点。端点必须是您的负载均衡器可以使用混合连接产品(如 Cloud VPN 或 Cloud Interconnect)访问的有效 IP:port
组合。
使用场景:将流量路由到本地位置或其他云
混合 NEG 最简单的应用场景是将流量从 Google Cloud 负载均衡器路由到本地位置或其他云环境。客户端可以来自公共互联网、Google Cloud 内部或本地客户端的流量。
公共客户端
您可以将外部应用负载均衡器与混合 NEG 后端结合使用,将流量从外部客户端路由到本地或其他云网络中的后端。您还可以为本地或其他云网络中的服务启用以下增值网络功能:
使用全球外部应用负载均衡器和传统应用负载均衡器,您可以:
- 使用 Google 的全球边缘基础架构来终止较靠近用户的连接,从而缩短延迟时间。
- 使用 Google Cloud Armor 保护您的服务。Google Cloud Armor 是一种边缘 DDoS 防御/WAF 安全产品,适用于通过外部应用负载均衡器访问的服务。
- 可让您的服务使用 Cloud CDN 优化交付。借助 Cloud CDN,您可以在靠近用户的位置缓存内容。Cloud CDN 提供缓存失效操作和 Cloud CDN 签名网址等功能。
- 使用 Google 管理的 SSL 证书。您可以重复使用已用于其他 Google Cloud 产品的证书和私钥。这样就不需要管理单独的证书。
下图演示了使用外部应用负载均衡器的混合部署。
在该图中,来自公共互联网上客户端的流量通过 Google Cloud 负载均衡器(例如外部应用负载均衡器)进入您的私有本地或云网络。当流量到达负载均衡器时,您可以应用网络边缘服务,例如 Google Cloud Armor DDoS 防护或 Identity-Aware Proxy (IAP) 用户身份验证。
- 使用区域级外部应用负载均衡器,您可以将外部流量路由到负载均衡器资源所在的 Google Cloud 区域中的端点。如果您只需传送来自一个地理位置的内容(例如,出于满足合规性规定的目的),或者希望使用标准网络服务层级,则可使用此负载均衡器。
请求的路由方式(是否路由到 Google Cloud 后端或本地/云端端点)取决于网址映射的配置方式。 根据网址映射,负载均衡器会为请求选择后端服务。如果所选后端服务配置了混合连接 NEG(仅适用于非 Google Cloud 端点),则负载均衡器会通过 Cloud VPN 或 Cloud Interconnect 将流量转发到其预期的外部目标。
内部客户端(在 Google Cloud 中或本地)
您还可为 Google Cloud 内部的客户端设置混合部署。在这种情况下,客户端流量源自 Google Cloud VPC 网络、本地网络或其他云,并路由到本地或其他云网络中的端点。
区域级内部应用负载均衡器是一种区域级负载均衡器,这意味着它只能将流量路由到负载均衡器资源所在的 Google Cloud 区域中的端点。 跨区域内部应用负载均衡器是一种多区域负载均衡器,可将流量负载均衡到分布在全球的后端服务。
下图展示了使用区域级内部应用负载均衡器的混合部署。
使用场景:迁移到云
通过将现有服务迁移到云,您可以释放本地容量,并降低维护本地基础架构的费用和负担。您可以临时设置混合部署,以将流量路由到当前本地服务和相应的 Google Cloud 服务端点。
下图演示了使用内部应用负载均衡器的设置。如果您使用内部应用负载均衡器处理内部客户端,则可以将 Google Cloud 负载均衡器配置为使用基于权重的流量拆分功能,在这两项服务之间拆分流量。通过流量拆分,您可以先向 Google Cloud 服务发送 0% 的流量,而向本地服务发送 100% 的流量。然后,您可以逐步增加发送到 Google Cloud 服务的流量的比例。最终,所有流量都会发送到 Google Cloud 服务,并且您可以停用本地服务。
混合架构
本部分介绍配置混合负载均衡部署所需的负载均衡架构和资源。
本地服务和其他云服务与其他任何 Cloud Load Balancing 后端一样。主要区别在于使用混合连接 NEG 来配置这些后端的端点。端点必须是您的客户端可通过混合连接(如 Cloud VPN 或 Cloud Interconnect)进行访问的有效 IP:port
组合。
全球外部 HTTP(S)
区域外部 HTTP(S)
区域级内部 HTTP(S)
区域级内部代理
区域级与全球
Cloud Load Balancing 路由取决于已配置的负载均衡器的范围:
外部应用负载均衡器和外部代理网络负载均衡器。这些负载均衡器可以配置为使用全球或区域路由,具体取决于所使用的网络层。您需要在已配置混合连接的网络和区域中创建负载均衡器的混合 NEG 后端。您还必须相应地配置非 Google Cloud 端点,以充分利用基于邻近度的负载均衡。
跨区域内部应用负载均衡器和跨区域内部代理网络负载均衡器。这是一种多区域负载均衡器,可将流量负载均衡到分布在全球的后端服务。您需要在已配置混合连接的网络和区域中创建负载均衡器的混合 NEG 后端。您还必须相应地配置非 Google Cloud 端点,以充分利用基于邻近度的负载均衡。
区域级内部应用负载均衡器和区域级内部代理网络负载均衡器。这些是区域级负载均衡器。也就是说,它们只能将流量路由到负载均衡器所在区域中的端点。您必须在配置了混合连接的区域中配置负载均衡器组件。默认情况下,访问负载均衡器的客户端也必须在同一区域。但是,如果您启用全球访问权限,则来自任何区域的客户端都可以访问负载均衡器。
例如,如果在 REGION_A 中配置了 Cloud VPN 网关或 Cloud Interconnect VLAN 连接,则负载均衡器所需的资源(例如后端服务、混合 NEG 或转发规则)必须在 REGION_A 区域中创建。默认情况下,访问负载均衡器的客户端也必须位于 REGION_A 区域中。 但是,如果您启用全球访问权限,则来自任何区域的客户端都可以访问负载均衡器。
网络连接要求
在配置混合负载均衡部署之前,必须设置以下资源:
Google Cloud VPC 网络。在 Google Cloud 中配置的 VPC 网络。这是用于配置 Cloud Interconnect/Cloud VPN 和 Cloud Router 的 VPC 网络。这也是您在其中创建负载均衡资源(转发规则、目标代理、后端服务等)的网络。本地、其他云以及 Google Cloud 子网 IP 地址和 IP 地址范围不得重叠。当 IP 地址重叠时,子网路由优先于远程连接。
混合连接您必须将 Cloud Interconnect VLAN 连接或 Cloud VPN 隧道与 Cloud Router 结合使用通过混合连接来连接 Google Cloud 和本地环境或其他云环境。我们建议您使用高可用性连接。 通过全球动态路由启用的 Cloud Router 路由器会通过 BGP 获知特定端点并将其编程到您的 Google Cloud VPC 网络中。不支持区域动态路由。也不支持静态路由。
Cloud Interconnect/Cloud VPN 和 Cloud Router 必须在要用于混合负载均衡部署的 VPC 网络中配置。Cloud Router 路由器还必须向您的本地环境通告以下路由:
Google 健康检查探测所使用的范围:
35.191.0.0/16
和130.211.0.0/22
。 这对于全球外部应用负载均衡器、传统应用负载均衡器、全球外部代理网络负载均衡器和传统代理网络负载均衡器是必需的。区域的代理专用子网范围:适用于基于 Envoy 的负载均衡器(区域级外部应用负载均衡器、区域级内部应用负载均衡器、 跨区域内部应用负载均衡器、区域级外部代理网络负载均衡器、 跨区域内部代理网络负载均衡器 和区域级内部代理网络负载均衡器)。
如需使分布式 Envoy 健康检查正常运行,也需要通告区域的代理专用子网。分布式 Envoy 健康检查是基于 Envoy 的负载均衡器后面的可用区级混合连接 NEG(即
NON_GCP_PRIVATE_IP_PORT
端点)的默认健康检查机制。
本地或其他云中的网络端点 (
IP:Port
)。在本地或其他云环境中配置的一个或多个IP:Port
网络端点,可使用 Cloud Interconnect 或 Cloud VPN 路由。如果有多个指向 IP 端点的路径,则路由将遵循 VPC 路由概览和 Cloud Router 概览中所述的行为。本地或其他云端上的防火墙规则。您必须在本地环境或其他云环境中创建以下防火墙规则:
- 入站流量允许防火墙规则,用于允许从 Google 的健康检查探测到您的端点的流量。要允许的范围包括
35.191.0.0/16
和130.211.0.0/22
。请注意,这些范围还必须由 Cloud Router 路由器通告给您的本地网络。如需了解详情,请参阅探测 IP 地址范围和防火墙规则。 - 入站流量允许防火墙规则,用于允许负载均衡的流量到达端点。
- 对于基于 Envoy 的负载均衡器(区域级外部应用负载均衡器、区域级内部应用负载均衡器、 跨区域内部应用负载均衡器、区域级外部代理网络负载均衡器、 跨区域内部代理网络负载均衡器 和区域级内部代理网络负载均衡器),您还需要创建防火墙规则,以允许来自相应区域的代理专用子网的流量到达本地环境或其他云环境中的端点。
- 入站流量允许防火墙规则,用于允许从 Google 的健康检查探测到您的端点的流量。要允许的范围包括
负载均衡器组件
根据负载均衡器的类型,您可以使用 Network Service Tiers 标准层级和高级层级来设置混合负载均衡部署。混合负载均衡器需要仅适用于后端服务的特殊配置。前端配置与任何其他负载均衡器相同。基于 Envoy 的负载均衡器(区域级外部应用负载均衡器、区域级内部应用负载均衡器、 跨区域内部应用负载均衡器、区域级外部代理网络负载均衡器、 跨区域内部代理网络负载均衡器 和区域级内部代理网络负载均衡器)还需要额外的代理专用子网来代表您运行 Envoy 代理。
前端配置
混合负载均衡不需要特殊的前端配置。转发规则用于根据 IP 地址、端口和协议将流量路由到目标代理。然后,目标代理会终止来自客户端的连接。
HTTP(S) 负载均衡器使用网址映射来设置基于网址将请求路由到相应的后端服务。
如需详细了解这些组件中的每个组件,请参阅特定负载均衡器概览的架构部分:
后端服务
后端服务向负载均衡器提供配置信息。负载均衡器使用后端服务中的信息将传入的流量定向到一个或多个挂接的后端。
如需设置混合负载均衡部署,您需要使用位于 Google Cloud 内部和 Google Cloud 外部的后端来配置负载均衡器。
非 Google Cloud 后端(本地或其他云)
对于您可以使用 Google 的混合连接产品(Cloud VPN 或 Cloud Interconnect)以及可以通过有效的
IP:Port
组合访问的任何目的地,都可以配置为负载均衡器的端点。按如下方式配置非 Google Cloud 后端:
- 将每个非 Google Cloud 网络端点的
IP:Port
组合添加到混合连接网络端点组 (NEG)。确保可使用混合连接(通过 Cloud VPN 或 Cloud Interconnect)从 Google Cloud 访问此 IP 地址和端口。 对于混合连接 NEG,请将网络端点类型设置为NON_GCP_PRIVATE_IP_PORT
。 - 在创建 NEG 时,指定 Google Cloud 可用区,以最大限度地减少 Google Cloud 与本地或其他云环境之间的地理位置距离。例如,如果您在德国法兰克福的某一本地环境中托管一项服务,则可以在创建 NEG 时指定
europe-west3-a
Google Cloud 可用区。 将此混合连接 NEG 添加为后端服务的后端。
混合连接 NEG 只能包含非 Google Cloud 端点。如果混合 NEG 包含 Google Cloud VPC 网络中资源的端点(例如内部直通式网络负载均衡器的转发规则 IP 地址),流量可能会被丢弃。按照下一部分中的说明配置 Google Cloud 端点。
- 将每个非 Google Cloud 网络端点的
Google Cloud 后端
按如下方式配置 Google Cloud 端点:
- 为 Google Cloud 后端创建单独的后端服务。
- 在您设置混合连接的同一区域内配置多个后端(
GCE_VM_IP_PORT
可用区级 NEG 或实例组)。
需要考虑的其他事项:
每个混合连接 NEG 只能包含相同类型 (
NON_GCP_PRIVATE_IP_PORT
) 的网络端点。您可以使用单项后端服务来引用基于 Google Cloud 的后端(使用具有
GCE_VM_IP_PORT
端点的可用区级 NEG)和本地或其他云后端(使用具有NON_GCP_PRIVATE_IP_PORT
端点的混合连接 NEG)。不允许使用混合后端类型的其他组合。 Cloud Service Mesh 不支持单个后端服务中具有混合后端类型。
后端服务的负载均衡方案必须为以下之一:
EXTERNAL_MANAGED
,用于全球外部应用负载均衡器、区域级外部应用负载均衡器、全球外部代理网络负载均衡器和区域级外部代理网络负载均衡器EXTERNAL
,用于传统应用负载均衡器和传统代理网络负载均衡器INTERNAL_MANAGED
,用于内部应用负载均衡器和区域级内部代理网络负载均衡器
具有混合连接 NEG 的 Cloud Service Mesh 多环境部署支持
INTERNAL_SELF_MANAGED
。
对于应用负载均衡器,后端服务协议必须是
HTTP
、HTTPS
或HTTP2
之一;对于代理网络负载均衡器,后端服务协议必须是TCP
或SSL
。如需查看每个负载均衡器支持的后端服务协议列表,请参阅从负载均衡器到后端的协议。混合 NEG 后端的均衡模式必须为
RATE
(用于应用负载均衡器)和CONNECTION
(用于代理网络负载均衡器)。如需详细了解均衡模式,请参阅后端服务概览。如需添加更多网络端点,请更新附加到后端服务的后端。
如果您将分布式 Envoy 健康检查与混合连接 NEG 后端(仅适用于基于 Envoy 的负载平衡器)结合使用,请务必为附加到同一后端服务的所有 NEG 配置唯一的网络端点。将同一网络端点添加到多个 NEG 会导致未定义的行为。
集中式健康检查
使用混合 NEG 时,全球外部应用负载均衡器、传统应用负载均衡器、全球外部代理网络负载均衡器和传统代理网络负载均衡器需要集中式健康检查。其他基于 Envoy 的负载均衡器使用分布式 Envoy 健康检查,如以下部分所述。
对于 Google Cloud 外部的 NON_GCP_PRIVATE_IP_PORT
端点,请在本地和其他云网络上创建防火墙规则。请与您的网络管理员联系,了解相关信息。用于混合连接的 Cloud Router 路由器还必须通告 Google 健康检查探测所使用的范围。要通告的范围包括 35.191.0.0/16
和 130.211.0.0/22
。
对于 Google Cloud 中的其他类型的后端,请在 Google Cloud 中创建防火墙规则,如本示例所示。
相关文档:
分布式 Envoy 健康检查
健康检查配置因负载均衡器的类型而异:
- 全球外部应用负载均衡器、传统应用负载均衡器、全球外部代理网络负载均衡器和传统代理网络负载均衡器。这些负载均衡器不支持分布式 Envoy 健康检查。它们使用 Google 的集中式健康检查机制,如集中式健康检查部分中所述。
区域级外部应用负载均衡器、区域级内部应用负载均衡器、区域级外部代理网络负载均衡器、区域级内部代理网络负载均衡器、跨区域内部代理网络负载均衡器和跨区域内部应用负载均衡器。这些负载均衡器使用分布式 Envoy 健康检查来检查混合 NEG 的健康状况。健康检查探测源自 Envoy 代理软件本身。每个后端服务都必须与用于检查后端健康状况的健康检查相关联。健康检查探测来自该区域内代理专用子网中的 Envoy 代理。为了让健康检查探测能够正常进行,您必须在外部环境中创建防火墙规则,以允许来自代理专用子网的流量到达外部后端。
对于 Google Cloud 外部的
NON_GCP_PRIVATE_IP_PORT
端点,您必须在本地网络和其他云网络上创建这些防火墙规则。请与您的网络管理员联系,了解相关信息。您用于混合连接的 Cloud Router 路由器还必须通告区域的代理专用子网范围。
分布式 Envoy 健康检查是使用与集中式健康检查相同的 Google Cloud 控制台、gcloud CLI 和 API 进程创建的。无需其他配置。
注意事项:
- 不支持 gRPC 健康检查。
- 不支持启用 PROXY 协议 v1 的健康检查。
- 如果您使用混合 NEG,其中单一后端服务具有可用区 NEG(Google Cloud 内的
GCE_VM_IP_PORT
端点)和混合 NEG(Google Cloud 外的NON_GCP_PRIVATE_IP_PORT
端点)的组合,您需要设置防火墙规则以允许来自 Google 健康检查探测 IP 地址范围(130.211.0.0/22
和35.191.0.0/16
)的流量到达 Google Cloud 上的可用区 NEG 端点。这是因为可用区 NEG 使用 Google 的集中式健康检查系统。 由于 Envoy 数据平面会处理健康检查,因此您无法使用 Google Cloud 控制台、API 或 gcloud CLI 来检查这些外部端点的健康状态。对于使用基于 Envoy 的负载均衡器的混合 NEG,Google Cloud 控制台会将健康检查状态显示为
N/A
。这是正常现象。分配给 VPC 网络的该区域中代理专用子网的每个 Envoy 代理都会独立启动健康检查。因此,您可能会看到健康检查导致网络流量增加。网络流量增加取决于分配给您的区域中 VPC 网络的 Envoy 代理数量、这些代理接收的流量以及每个 Envoy 代理需要进行健康检查的端点数量。在最坏的情况下,网络流量因健康检查而以二次函数
(O(n^2))
增加。分布式 Envoy 健康检查的健康检查日志不包含详细的健康状态。如需详细了解记录的内容,请参阅健康检查日志记录。如需进一步排查从 Envoy 代理到 NEG 端点的连接问题,您还应检查相应的负载均衡器日志。
相关文档:
限制
- 用于混合连接的 Cloud Router 路由器必须通过全球动态路由启用。不支持区域动态路由和静态路由。
- 对于基于 Envoy 的区域级负载均衡器(区域级外部应用负载均衡器、区域级外部代理网络负载均衡器、区域级内部代理网络负载均衡器和区域级内部应用负载均衡器),您必须在负载均衡器所在的区域内配置混合连接。如果在不同区域中配置混合连接,您可能会看到后端运行状况良好,但客户端请求不会转发到后端。
从负载均衡器到此处记录的后端的加密连接的注意事项,也适用于在混合连接 NEG 中配置的非 Google Cloud 后端端点。
确保还要查看混合连接配置的安全设置。目前,高可用性 VPN 连接默认处于加密状态 (IPsec)。Cloud Interconnect 连接默认不加密。如需了解详情,请参阅传输加密白皮书。
日志记录
代理到混合 NEG 中端点的请求将以记录对其他后端的请求相同的方式记录到 Cloud Logging。如果您为全球外部应用负载均衡器启用 Cloud CDN,则系统还会记录缓存命中数。
如需了解详情,请参阅以下主题:
配额
您可以根据现有网络端点组配额允许的网络端点来配置任意数量的混合 NEG。如需了解详情,请参阅 NEG 后端和每个 NEG 的端点数。
后续步骤
- 设置具有混合连接的传统应用负载均衡器
- 设置具有混合连接的区域级外部应用负载均衡器
- 设置具有混合连接的区域级内部应用负载均衡器
- 设置具有混合连接的区域内部代理网络负载均衡器
- 设置具有混合连接的跨区域内部代理网络负载均衡器
- 设置具有混合连接的区域外部代理网络负载均衡器
- 如需详细了解使用 Cloud Service Mesh 的混合连接,请参阅 Cloud Service Mesh 混合连接概览。
- 如需为混合部署配置 Cloud Service Mesh,请参阅多环境部署的网络边缘服务。