API 网关的负载均衡
通过集成对 API Gateway 的全球外部应用负载平衡器和传统应用负载平衡器支持,无服务器后端可利用 Cloud Load Balancing 提供的所有功能。通过使用无服务器网络端点组 (serverless NEG) 将 API Gateway 与全球外部应用负载平衡器或传统应用负载平衡器结合使用,您可以:
- 使用自定义品牌网域的主机网关
- 使用首选证书授权机构颁发的证书为网关配置 TLS
- 为路由到多个后端的网关创建公共入口点
- 在多个地理地区部署网关以实现高可用性,无需管理每个地区的网址
- 使用 Cloud Armor 保护网关
- 利用 Cloud CDN 缩短网关响应时间
将无服务器 NEG 用于 API Gateway
网络端点组 (NEG) 为负载均衡器指定了一组后端端点。无服务器 NEG 是指向 Google 托管的无服务器后端(例如 Cloud Run、App Engine 或 API Gateway)的后端。API Gateway 的无服务器 NEG 后端可以表示:
- API Gateway 实例
- 使用相同的 API 配置配置的一组网关
下图展示了如何在 Cloud Load Balancing 模型中使用无服务器 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 协议。
- 不支持在
utilization
或connection
相关字段中指定的值。
后端服务配置中的 IAP
、cdnPolicy
和 securityPolicy
字段对无服务器 NEG 有效。可通过这些字段分别使用 API Gateway 服务设置 Identity-Aware Proxy、Cloud CDN 和 Cloud Armor。
后续步骤
按照 适用于 API Gateway 的全球外部应用负载均衡器使用入门配置负载均衡器
浏览为 API Gateway 创建多地区部署
详细了解如何使用自定义网域