GKE 中的负载均衡简介


本页面简要介绍 Google Kubernetes Engine (GKE) 如何创建和管理 Google Cloud 负载均衡器。如需详细了解 Google Cloud中提供的负载均衡器类型,请参阅 Google Cloud 负载均衡器类型

本页面适用于为组织设计和架构网络的云架构师和网络专家。如需详细了解我们在 Google Cloud 内容中提及的常见角色和示例任务,请参阅常见的 GKE Enterprise 用户角色和任务

本指南假定您熟悉以下内容:

  • Google Cloud 负载均衡器的类型
  • 第 4 层(网络负载均衡器)和第 7 层(应用负载均衡器)负载均衡器之间的差异

GKE 如何创建负载均衡器

如需让集群外部(外部用户)或专用网络内(内部用户)的用户访问您的应用,您可以使用 Gateway、Ingress 和 Service API 来配置负载均衡器,从而公开您的应用。或者,您可以自行创建负载均衡器组件,而 GKE 会管理将负载均衡器连接到集群中 Pod 的网络端点组 (NEG)。

网关

GKE Gateway 控制器是 Google 对用于 Cloud Load Balancing 的 Kubernetes Gateway API 的实现。Gateway API 是一个开源项目,旨在标准化服务网格和 Ingress 控制器在 Kubernetes 中公开应用的方式。它旨在成为 Ingress 资源更具表现力、更灵活且更可扩展的后继产品。

GKE Gateway 控制器用于配置第 7 层应用负载均衡器,以将 HTTP(S) 流量公开给在集群中运行的应用。

最佳实践

使用 Gateway API 实现负载均衡器。

入站流量

GKE Ingress 控制器是 Google 对 Ingress API 的实现。借助 Ingress API,您可以管理对集群中运行的服务的外部访问。当您在 GKE 中创建 Ingress 资源时,控制器会自动配置第 7 层应用负载均衡器,以允许 HTTP 或 HTTP(S) 流量到达在集群中运行的应用。

对于需要高级流量管理、多协议支持或更出色的多租户功能的新部署和应用,建议选择 GKE Gateway。不过,对于更简单的 HTTP/HTTPS 路由场景,GKE Ingress 也是一个可行的选择,尤其是对于现有配置而言,迁移到 Gateway API 的好处可能尚未超过所需付出的努力。

LoadBalancer 服务

借助 Service API,您可以将作为 Pod 在集群中运行的应用公开给外部或内部流量。当您创建类型为 LoadBalancer 的服务时,GKE 会根据服务清单的参数自动创建第 4 层 (TCP/UDP) 直通式网络负载均衡器。

在直通式网络负载均衡器中,当流量到达后端虚拟机时,原始来源和目标 IP 地址、通信协议(如 TCP 或 UDP)以及端口号(如果协议使用端口号)保持不变。这意味着流量会直通后端虚拟机或 Pod,并且负载均衡器不会终止连接。后端服务处理连接的终止,并确保流量从客户端无缝流向服务。

加权负载均衡

如果您配置了外部 LoadBalancer Service,使 VPC 网络外部的客户端和 Google Cloud 虚拟机可以访问该服务,则可以启用加权负载均衡。 加权负载均衡根据每个 GKE 节点上服务 Pod 的数量来分配流量,因此与服务 Pod 较少的节点相比,服务 Pod 较多的节点接收的流量比例更大。

独立 NEG

在 GKE 中管理负载均衡器的另一种方法是自行创建负载均衡器组件,让 GKE 管理 NEG。这种类型的负载均衡器称为代理网络负载均衡器。NEG 是一种表示负载均衡的后端端点(例如 Pod)组的方式。

这种类型的负载均衡器仅适用于 TCP 流量。代理网络负载均衡器将 TCP 流量分配到您的 VPC 网络或其他云环境中的后端。流量在负载均衡层终止。然后,负载均衡器通过与最近的可用后端建立新的 TCP 连接来转发流量。

什么是容器原生负载均衡?

容器原生负载均衡是指使用 GCE_VM_IP_PORT NEG 将流量直接均匀分配到各个 Pod(而非节点)的 IP 地址。借助 GCE_VM_IP_PORT NEG,您可以使用 Compute Engine 虚拟机 (VM) 的主要内部 IP 地址或 VM 的某个已配置别名 IP 范围内的 IP 地址来指定后端端点。

容器原生负载均衡适用于所有 GKE 管理的第 7 层负载均衡器,包括 Gateway 和 Ingress,以及独立 NEG。LoadBalancer Service 不使用容器原生负载均衡。不过,您可以通过启用加权负载均衡来实现类似的功能。

容器原生负载均衡具有多项优势,包括提高网络性能和改进健康检查,因为它直接定位 Pod。如需了解详情,请参阅容器原生负载均衡

汇总表

您可以使用下表来帮助规划负载均衡配置。

选择负载均衡器类型

下表显示了为给定资源(Gateway、Ingress 或 LoadBalancer Service)创建的负载均衡器类型:

Kubernetes 资源 创建的负载均衡器的类型
应用负载均衡器 直通式网络负载均衡器
网关
入站
LoadBalancer Service

选择创建负载均衡器的方法

下表显示了在 GKE 中创建所选负载均衡器的选项:

负载均衡器类型 创建所选负载均衡器的方法
网关 入站流量 LoadBalancer Service 独立 NEG
全球外部应用负载均衡器
传统外部应用负载均衡器
区域级外部应用负载均衡器
区域级内部应用负载均衡器
跨区域内部应用负载均衡器
代理网络负载均衡器
(所有类型)
直通式网络负载均衡器
(内部和外部)

后续步骤