适用于内部 HTTP(S) 负载平衡的 Ingress

本页面介绍适用于内部 HTTP(S) 负载平衡的 Ingress 在 Google Kubernetes Engine (GKE) 中的工作原理。您还可以了解如何设置和使用适用于内部 HTTP(S) 负载平衡的 Ingress

如需了解有关在 GKE 中使用 Ingress 实现负载平衡的一般信息,请参阅使用 Ingress 实现 HTTP(S) 负载平衡

概览

在 GKE 中,内部 HTTP(S) 负载平衡器是一种基于代理的地区级第 7 层负载平衡器,可让您在内部负载平衡 IP 地址后面运行和扩缩您的服务。在 GKE 集群上创建 Ingress 对象后,GKE Ingress 对象便可为内部 HTTP(S) 负载平衡器提供原生支持。

将 Ingress 用于内部 HTTP(S) 负载平衡器的优势

使用适用于内部 HTTP(S) 负载平衡的 GKE Ingress 具有以下优势:

  • 运行高度可用且由 GKE 管理的 Ingress 控制器。
  • 为内部的服务间通信实现负载平衡。
  • 通过网络端点组 (NEG) 实现容器原生负载平衡。
  • 为应用路由提供 HTTP 和 HTTPS 支持。
  • 对弹性服务执行高准确度的 Compute Engine 运行状况检查。
  • 通过基于 Envoy 的代理实现按需部署,从而满足流量容量需求。

对 Google Cloud 功能的支持

适用于内部 HTTP(S) 负载平衡的 Ingress 支持多种附加功能。

所需的网络环境

如要使用适用于内部 HTTP(S) 负载平衡的 Ingress,您需要使用代理专用子网。

内部 HTTP(S) 负载平衡器为您的网络提供了一个代理池。代理会根据网址映射、BackendService 的会话亲和性以及每个后端 NEG 的平衡模式等因素,评估每个 HTTP(S) 请求的去向。

下图概述了内部 HTTP(S) 负载平衡器的流量情况。

适用于内部 HTTP(S) 负载平衡的 Ingress 示意图

代理通过以下方式建立连接:

  1. 客户端连接到负载平衡器的转发规则的 IP 地址和端口。
  2. 其中一个代理接收并终止客户端的网络连接。
  3. 该代理与网络端点组中的相应后端虚拟机或端点(具体取决于负载平衡器的网址映射和后端服务)建立连接。

负载平衡器的每个代理都分配有一个内部 IP 地址。地区中所有内部 HTTP(S) 负载平衡器的代理均使用内部 IP 地址。此地址来自您 VPC 网络中该地区内的一个代理专用子网。该子网专为内部 HTTP(S) 负载平衡代理预留,不能用于其他目的。代理专用子网必须提供 64 个或更多 IP 地址,且对应的前缀长度不得超过 /26。在每个 VPC 网络中,每个地区只能有一个代理专用子网处于活跃状态。

只有 Google Cloud 为地区的内部 HTTP(S) 负载平衡器创建的代理才使用代理专用子网。负载平衡器的转发规则的 IP 地址不来自仅代理子网。此外,后端虚拟机和端点的 IP 地址也不来自仅代理子网。

每个代理监听由相应负载平衡器的转发规则指定的 IP 地址和端口。每个从代理发送到后端虚拟机或端点的数据包都具有来自仅代理子网的来源 IP 地址。

配置网络和子网部分说明了部署这种代理专用子网的步骤。GKE Ingress 控制器会管理防火墙规则的部署,因此您无需手动部署它们。

后续步骤