API 网关的 HTTP(S) 负载均衡

通过集成对 API Gateway 的 Google Cloud HTTP(S) 负载均衡支持,无服务器后端可利用 Cloud Load Balancing 提供的所有功能。通过使用无服务器网络端点组(无服务器 NEG)将 API Gateway 和 HTTP(S) 负载均衡结合使用,您可以:

  • 使用自定义品牌网域的主机网关
  • 使用首选证书授权机构颁发的证书为网关配置 TLS
  • 为路由到多个后端的网关创建公共入口点
  • 在多个地理地区部署网关以实现高可用性,无需管理每个地区的网址
  • 使用 Cloud Armor 保护网关
  • 利用 Cloud CDN 缩短网关响应时间

将无服务器 NEG 用于 API Gateway

网络端点组 (NEG) 为负载均衡器指定了一组后端端点。无服务器 NEG 是指向 Google 托管的无服务器后端(例如 Cloud RunApp Engine 或 API Gateway)的后端。API Gateway 的无服务器 NEG 后端可以表示:

  • API Gateway 实例
  • 使用相同的 API 配置配置的一组网关

下图展示了如何在 Cloud Load Balancing 模型中使用无服务器 NEG:

无服务器 NEG 作为多区域网关的后端示意图

如上所述,可通过多个无服务器 NEG 来管理后端服务。每个无服务器 NEG 都可以包含一个 API 网关实例,或使用网址掩码指向多个网关。由于充当后端服务的所有 NEG 都用于负载均衡,因此它们应表示具有等效功能的网关部署。例如,所有 NEG 都应将同一 API 配置部署到不同地区中的每个网关。如果后端服务包含多个 NEG,则负载均衡器会对这些 NEG 之间的流量进行均衡,同时最大限度地缩短请求延迟时间。

无服务器 NEG 和 API Gateway 的限制

使用无服务器 NEG 来集成 API Gateway 的 Cloud Load Balancing 时,应考虑一些限制。最值得注意的是:

  • 无服务器 NEG 不能附加任何网络端点,例如 IP 地址或端口。
  • 无服务器 NEG 只能指向创建 NEG 的地区中的 API Gateway 实例。
  • 无服务器 NEG 只能指向使用无服务器 NEG 后端在负载均衡器所在的项目中创建的 API Gateway 实例。
  • API Gateway 尚不支持 Ingress 控制设置。因此,无法通过服务生成的网关网址停用对 API Gateway 的访问权限,也无法确保所有流量都由负载均衡器处理。

如需详细了解与无服务器 NEG 和后端服务相关的大致限制,请参阅限制

后端服务配置中无服务器 NEG 的限制

后端服务定义了 Cloud Load Balancing 如何分配流量。后端服务配置包含一组值,例如用于连接到后端的协议、各种分发和会话设置、健康检查和超时。对于用作 API Gateway 后端服务的无服务器 NEG,可使用这些设置精细控制负载均衡器的行为。

后端服务的资源定义对负载均衡设计有以下影响:

  • 无服务器 NEG 不能与同一后端服务中的其他类型的 NEG 搭配使用。例如,您无法从同一后端服务路由到 GKE 集群和 API Gateway 实例。
  • 组合到后端服务中的所有无服务器 NEG 必须使用相同类型的后端。这意味着 API Gateway 无服务器 NEG 只能与其他 API Gateway 无服务器 NEG 组合,App Engine 无服务器 NEG 只能与 App Engine 无服务器 NEG 组合,以此类推。
  • 一个后端服务只能在每个地区包含一个无服务器 NEG。

在定义路由到无服务器 NEG 的后端服务配置时,存在以下字段限制:

  • 不能指定 balancingMode
  • healthCheck 字段必须为空且不能指定
  • 不能指定端口
  • 仅支持 HTTP 和 HTTPS 协议。
  • 不支持在 utilizationconnection 相关字段中指定的值。

后端服务配置中的 IAPcdnPolicysecurityPolicy 字段对无服务器 NEG 有效。可通过这些字段分别使用 API Gateway 服务设置 Identity-Aware ProxyCloud CDNCloud Armor

后续步骤