互联网网络端点组概览

Cloud Load Balancing 支持将流量代理到 Trusted Cloud by S3NS之外的外部后端。如需为负载均衡器定义外部后端,请使用称为互联网网络端点组 (NEG) 的资源。

如果您想从外部后端传送内容,但希望 Trusted Cloud 负载均衡器作为前端,则可以使用此类部署。这样一来,您将能够执行以下操作:

  • 使用 Google Edge 基础架构来终止用户连接。
  • 将连接定向到您的外部后端。
  • 通过 Google 的专有骨干网向您的公共端点传送流量,从而提高可靠性并缩短客户端和服务器之间的延迟时间。

以下各部分介绍了外部后端如何与 Cloud Load Balancing 搭配使用。如果要将外部后端与 Cloud Service Mesh 搭配使用,请参阅具有互联网网络端点组的 Cloud Service Mesh

术语

以下术语有时可以互换使用,因为它们的含义相同或相似:

  • 外部后端:位于 Trusted Cloud by S3NS 外部且可通过互联网访问的后端。互联网 NEG 中的端点。
  • 互联网网络端点组 (NEG):用于指定外部后端的 Trusted Cloud by S3NS API 资源。
  • 外部端点:与外部后端相同。

本文档在提及互联网 NEG API 资源时使用的是“外部后端”一词。

负载均衡器组件

本部分介绍配置具有外部后端的负载均衡器所需的负载均衡架构和资源。负载均衡器需要仅适用于后端服务的特殊配置。前端配置与任何其他负载均衡器相同。

下图显示了设置具有外部后端的负载均衡器所需的 Trusted Cloud 资源。

区域外部

该图展示了设置具有外部后端的区域级外部应用负载均衡器所需的 Trusted Cloud 资源。

具有外部后端的区域级外部应用负载均衡器。
具有外部后端的区域级外部应用负载均衡器(点击可放大)。

此图展示了设置具有外部后端的区域级外部代理网络负载均衡器所需的 Trusted Cloud 资源。

具有外部后端的区域级外部代理网络负载均衡器。
具有外部后端的区域级外部代理网络负载均衡器(点击可放大)。

区域内部

该图展示了设置具有外部后端的区域级内部应用负载均衡器所需的 Trusted Cloud 资源。

具有外部后端的区域级内部应用负载均衡器。
具有外部后端的区域级内部应用负载均衡器(点击可放大)。

此图展示了设置具有外部后端的区域级内部代理网络负载均衡器所需的 Trusted Cloud 资源。

具有外部后端的区域级内部代理网络负载均衡器。
具有外部后端的区域级内部代理网络负载均衡器(点击可放大)。

互联网 NEG 只能在高级 Network Service Tiers 上使用。

前端配置

使用互联网 NEG 后端创建负载均衡器时,无需特殊的前端配置。转发规则用于根据 IP 地址、端口和协议将流量路由到目标代理。然后,目标代理会终止来自客户端的连接。此外,基于 Envoy 的负载均衡器需要代理专用子网。

应用负载均衡器还使用网址映射设置基于网址将请求路由到相应后端服务。

如需详细了解这些组件中的每个组件,请参阅相应负载均衡器的架构部分:

互联网 NEG

互联网 NEG 是用于为负载均衡器定义外部后端的资源。互联网 NEG 有两种类型:全球互联网 NEG 和区域互联网 NEG。它们在范围(全球与区域)和行为方面有所不同。全球互联网 NEG 所引用的外部后端必须只能通过互联网访问;不能通过 Cloud VPN 或 Cloud Interconnect 访问。如果外部后端引用 Google API 或服务,则必须通过使用 HTTPHTTPSHTTP/2 协议的 TCP 端口 80443 访问该服务。

有两种方法可以配置 NEG 引用的外部端点:INTERNET_FQDN_PORTINTERNET_IP_PORT。如果选择 INTERNET_IP_PORT 格式,则只能使用可在互联网上路由的公共 IP 地址;如果选择 INTERNET_FQDN_PORT 格式,则 FQDN 可以解析为可在互联网上路由的公共 IP 地址或专用 IP 地址,具体取决于端点的范围(区域性或全球性)。

区域级互联网 NEG 由托管式 Envoy 代理提供支持。每个 NEG 可以有多个端点,并且一个后端服务可以包含多个互联网 NEG。

对于出站流量,您可以配置 Cloud NAT 网关来设置来源 IP 地址。或者,您也可以使用 VPC 网络中的已知路由来路由流量。虽然此路由方法不需要 Cloud NAT,但支持 Cloud NAT。

下表介绍了不同负载均衡器会以何种方式支持区域级互联网 NEG。

负载均衡器 端点类型 端点定义 范围 健康检查
  • 区域级外部应用负载均衡器
  • 区域级内部应用负载均衡器
  • 区域级外部代理网络负载均衡器
  • 区域级内部代理网络负载均衡器

INTERNET_FQDN_PORT

可公开或不公开解析的完全限定域名和可选端口。例如:backend.example.com:443*

域名必须可由 Cloud DNS 解析。

每个 NEG 最多允许 256 个端点。

区域 Envoy 分布式健康检查

INTERNET_IP_PORT

只有一个可公开路由的 IP 地址和一个可选端口。例如 8.8.8.8:4432

IP 地址不能是 RFC 1918 地址。

每个 NEG 最多允许 256 个端点。

* 使用区域级互联网 NEG 时,您需要指定端口。您可以在创建 NEG 时指定默认端口,也可以在每次向 NEG 添加端点时指定端口,也可以同时执行这两项操作。如果您在添加端点时未指定端口,则系统会使用 NEG 的默认端口。

区域 INTERNET_FQDN_PORT 端点的 DNS 解析

如果您的网域可通过互联网解析,则无需其他配置来设置 DNS。但是,如果您解析的是专用 FQDN,则需要配置 Cloud DNS 以便于进行 DNS 解析。该名称必须托管在 Cloud DNS 上,或者必须可使用从 Cloud DNS 到本地 DNS 的 DNS 转发进行解析,或者如果引用的是其他 VPC 网络中的专用 DNS 区域,则可使用 DNS 对等互连进行解析。

首先,创建一个 Cloud DNS 区域以在您的项目中托管 DNS 记录。然后向其添加 DNS 记录。如需了解特定配置步骤,请参阅 Cloud DNS 文档。 如需详细了解 Cloud DNS 解析顺序,请参阅域名解析顺序

如果您使用的是共享 VPC,请注意特定的网络要求。您还可以使用 Cloud DNS 的其他功能(例如转发区域)从本地 DNS 服务器提取记录。

区域 INTERNET_FQDN_PORT 端点的 IP 地址解析

区域级互联网 NEG 支持使用 Cloud DNS 进行域名解析。

如果 DNS 服务器返回多个 IP 地址,Envoy 会根据配置的负载均衡算法(轮询、最少请求等)在返回的 IP 地址之间实现流量负载均衡。系统会根据 DNS TTL 定期刷新端点列表。您可以配置重试政策,以强制 Envoy 在一个 IP 地址失败时尝试连接到另一个 IP 地址。

后端服务

后端服务向负载均衡器提供配置信息。负载均衡器使用后端服务中的信息将传入的流量定向到一个或多个挂接的后端。

如需使用外部后端设置负载均衡器,请使用互联网 NEG 后端来配置后端服务。将互联网 NEG 添加到后端服务时,请考虑以下注意事项,具体取决于 NEG 的范围:

  • 后端服务也不能使用其他后端类型(例如可用区级 NEG 或实例组)作为后端。

  • 每个后端服务的 NEG 数量

  • 每个 NEG 的端点数

    区域 NEG 不支持负载均衡模式,例如速率、连接或利用率。连接到后端服务的所有 NEG 的所有端点都汇集到一个组中。此端点池中的负载均衡流量使用 Envoy 负载均衡算法进行处理。如需了解受支持的负载均衡政策算法,请参阅区域级后端服务 API 文档中的 localityLbPolicy

  • 健康检查

  • 后端服务的负载均衡方案必须与您要部署的负载均衡器所需的方案匹配。如需查看完整列表,请参阅后端服务

  • 后端服务协议必须是 HTTPHTTPSHTTP2 之一。

    我们强烈建议您在使用互联网 NEG 配置后端服务时使用 HTTPS 或 HTTP/2 作为协议,以便在传输公共互联网时加密和验证负载均衡器与后端之间的通信。

    此外,使用 HTTPS 或 HTTP/2 作为后端协议时,请确保使用 INTERNET_FQDN_PORT 端点创建外部后端。这有两个优势:

    • 它确保负载均衡器验证外部后端提供的 SSL 服务器证书,并验证以下信息是否为 true:

      • 该证书由知名证书授权机构 (CA) 签名。
      • 该证书没有过期。
      • 该证书签名有效。
      • 配置的 FQDN 与证书中的某个主题备用名称 (SAN) 匹配。

      如果使用 INTERNET_IP_PORT 端点创建外部后端,则系统不会执行 SSL 服务器证书验证。

    • 只有 INTERNET_FQDN_PORT 端点支持 SSL 服务器名称指示 (SNI) 扩展程序。在负载均衡器和外部端点之间的 SSL 握手期间,已配置的 FQDN 将在客户端 hello 中发送 SNI。使用 INTERNET_IP_PORT 端点时,系统不会发送 SNI,因为 SNI 载荷的 HostName 字段中不允许使用 IP 地址字面量。

健康检查

健康检查配置因负载均衡器的类型而异:

  • 区域级外部应用负载均衡器、区域级内部应用负载均衡器、区域级外部代理网络负载均衡器和区域级内部代理网络负载均衡器。健康检查是可选项。这些负载均衡器的健康检查探测源自代理专用子网,然后(使用 Cloud NAT)经 NAT 转换为预留的 IP 地址,或者自动分配的 NAT IP 地址。如需了解详情,请参阅区域级 NEG:使用 Cloud NAT 网关

    分布式 Envoy 健康检查是使用与集中式健康检查相同的Trusted Cloud 控制台、gcloud CLI 和 API 进程创建的。无需其他配置。

    注意事项:

    • 不支持 gRPC 健康检查。
    • 不支持启用 PROXY 协议 v1 的健康检查。
    • 由于 Envoy 数据平面会处理健康检查,因此您无法使用Trusted Cloud 控制台、API 或 gcloud CLI 来检查这些外部端点的健康状态。对于使用基于 Envoy 的负载均衡器的混合 NEG, Trusted Cloud 控制台会将健康检查状态显示为 N/A。这是正常现象。

    • 分配给 VPC 网络的该区域中代理专用子网的每个 Envoy 代理都会独立启动健康检查。因此,您可能会看到健康检查导致网络流量增加。网络流量增加取决于分配给您的区域中 VPC 网络的 Envoy 代理数量、这些代理接收的流量以及每个 Envoy 代理需要进行健康检查的端点数量。在最坏的情况下,网络流量因健康检查而以二次函数 (O(n^2)) 增加。

    • 分布式 Envoy 健康检查的健康检查日志不包含详细的健康状态。如需详细了解记录的内容,请参阅健康检查日志记录。如需进一步排查从 Envoy 代理到 NEG 端点的连接问题,您还应检查相应的负载均衡器日志。

启用外部后端以接收请求

将外部后端配置为允许来自 Trusted Cloud的流量。

区域 NEG:使用 Cloud NAT 网关

如果您使用的是区域级互联网 NEG,则首先需要设置 Cloud NAT 网关,以分配一组作为 Trusted Cloud 流量来源的 IP 地址范围。

网关端点的类型应为 ENDPOINT_TYPE_MANAGED_PROXY_LB

Cloud NAT 网关可以配置为根据需求动态分配外部 IP 地址,或者使用一组手动预留的外部 IP 地址。

  • 自动分配的 IP 地址

    如果外部后端环境不要求您将可将流量发送到外部后端的特定 Trusted CloudIP 地址添加到许可名单,请使用自动分配的 IP 地址。

  • 手动分配的 IP 地址

    仅当外部后端环境要求您将特定 Trusted Cloud IP 地址添加到许可名单时,才使用手动分配的 IP 地址。由于分配给您的代理子网的每个 Envoy 都会使用整个 IP 地址,因此请确保预留的 IP 地址池足够大,可以容纳所有 Envoy。

    如果您遇到大规模连接问题,请检查您是否已达到 Cloud NAT 限制。默认情况下,每个网关最多只能有 50 个手动分配的 NAT IP 地址。

区域互联网 NEG 支持动态端口分配。IP 地址可由代理共享,从而充分利用。

此 Cloud NAT 配置适用于整个代理专用子网。 与区域内所有基于 Envoy 的区域级负载均衡器关联的网络流量共享同一个 NAT 网关。

使用 Cloud NAT 时会同时产生用户流量和健康检查流量的费用。如需详细了解区域级互联网 NEG 价格的制定原理,请参阅区域级互联网 NEG 价格

在代理专用子网上配置的 NAT 网关存在一些限制:

  • 仅执行一对一 NAT 转换。不支持 IP 地址共享。
  • 不支持日志记录和监控。也就是说,--enable-logging--log-filter 标志不受支持。

对发送至外部后端的请求进行身份验证

本部分仅适用于应用负载均衡器。

如需对发送到外部后端的请求进行身份验证,您可以执行以下一项操作:

  • 使用自定义请求标头设置自定义标头以指示请求来自 Trusted Cloud 负载均衡器。例如,您可以将 16 个或更多的加密随机字节用作共享密钥。

    自定义标头转换的实现取决于您使用的负载均衡器类型:

    • 区域级外部应用负载均衡器和区域级内部应用负载均衡器。自定义标头转换只能在网址映射上配置。

      对于这些基于 Envoy 的负载均衡器,Hostauthority 是 Trusted Cloud预留的特殊关键字。您无法为这些负载均衡器修改这些标头。我们建议您创建其他自定义标头(例如 MyHost),以免干扰预留的标头名称。

  • 启用 IAP,并验证请求标头中已签名的 JWT 是否由 Google 签名,以及 aud(受众群体)声明是否包含在其中定义了负载均衡器的项目的编号。

日志

与记录针对其他后端发出的请求时一样,通过代理发送到外部后端的请求也会记录到 Cloud Logging。

详情请参阅以下内容:

限制

  • 请查看后端服务部分,了解将互联网 NEG 配置为后端的相关限制。
  • 当您修改负载均衡器以将后端从互联网 NEG 更改为任何其他后端类型,或将后端从任何其他后端类型更改为互联网 NEG 时,您的应用会遇到大约 30-90 秒的临时停机时间。
  • 请查看 Cloud NAT 网关部分,了解与代理专用子网上配置的 NAT 网关相关的限制。

配额和限制

如需了解配额和限制,请参阅 NEG 后端配额表每个 NEG 的端点数配额表

价格

外部互联网 NEG 端点的出站流量按高级层级网络的互联网出站流量费率计费。来源取决于客户端位置,而目标取决于您的公共端点的位置。

如果您配置了 Cloud NAT 网关以映射基于 Envoy 的区域级负载均衡器的代理专用子网,则会产生 Cloud NAT 费用。 为负载均衡器分配的 Cloud NAT 网关与包含 32 个以上虚拟机实例的网络的每小时费用等价。如需了解详情,请参阅 Cloud NAT 价格

如需了解详情,请参阅 Cloud Load Balancing 价格

后续步骤