管理负载平衡器

此概览页面介绍了如何在 Google Distributed Cloud (GDC) 空气隔离环境中配置内部和外部负载平衡器,以实现区域和全局网络配置。

GDC 的负载均衡功能可确保在后端工作负载之间高效分配流量,从而提高应用可用性和性能。

本页面适用于平台管理员群组中的网络管理员,或应用运维者群组中的开发者,他们负责管理组织的网络流量。如需了解详情,请参阅 GDC 气隙环境文档的受众群体

负载均衡架构

GDC 提供负载平衡器,使应用能够相互公开服务。负载平衡器会分配一个稳定的虚拟 IP (VIP) 地址,用于在后端工作负载集之间平衡流量。GDC 中的负载平衡器执行第 4 层 (L4) 负载均衡,这意味着它们会将一组配置的前端 TCP 或 UDP 端口映射到相应的后端端口。负载平衡器是在项目级配置的。

负载平衡器是针对以下工作负载类型配置的:

  • 在虚拟机上运行的工作负载。
  • Kubernetes 集群中的容器化工作负载。

您可以通过以下三种方式在 GDC 中配置负载平衡器:

  • 使用 Networking Kubernetes 资源模型 (KRM) API。您可以使用此 API 创建全球级或可用区级负载平衡器。
  • 使用 gdcloud CLI。 您可以使用此 API 创建全球级或可用区级负载平衡器。
  • 直接从 Kubernetes 集群使用 Kubernetes 服务。此方法仅创建区域级负载平衡器。

负载均衡器组件

当您使用 KRM API 或 gdcloud CLI 配置负载均衡器时,您使用的是 L4 直通负载均衡器:

  • L4 表示协议为 TCP 或 UDP。
  • 直通是指工作负载与客户端之间没有代理。

负载均衡器包含以下可配置的组件:

  • 转发规则:指定转发哪些流量以及转发到哪个后端服务。转发规则具有以下规范:

    • 包含三个元组,分别是 CIDR、端口和协议,供客户端访问。
    • 支持 TCP 和 UDP 协议。
    • 提供内部和外部转发规则。客户端可以从 Virtual Private Cloud (VPC) 内部访问内部转发规则。客户端可以从 GDC 平台外部或内部访问外部转发规则,前提是工作负载已定义 EgressNAT 值。
    • 转发规则连接到后端服务。您可以将多个转发规则指向同一后端服务。
  • 后端服务:是负载均衡中心,可将转发规则、健康检查和后端关联在一起。后端服务会引用一个后端对象,该对象用于标识负载均衡器将流量转发到的工作负载。单个后端服务可以引用的后端存在以下限制:

    • 每个可用区一个地区级后端资源。
    • 每个集群一个集群后端资源。此功能无法与项目后端混用。
  • 后端:一种地区对象,用于指定作为所创建后端服务后端的端点。后端资源必须限定为某个可用区。使用标签选择端点。将选择器的范围限定为项目或集群:

    • 项目后端是指未指定 ClusterName 字段的后端。在这种情况下,指定的标签适用于特定可用区中特定 VPC 内的特定项目中的所有工作负载。标签应用于多个集群中的虚拟机和 pod 工作负载。当后端服务使用项目后端时,您无法在该后端服务中引用相应可用区的其他后端。

    • 集群后端是指指定了 ClusterName 字段的后端。在这种情况下,指定的标签适用于指定项目中的指定集群中的所有工作负载。在单个后端服务中,每个集群的每个可用区最多只能指定一个后端。

  • 健康检查:指定探测,以确定后端中给定工作负载端点的健康状况。健康状况不佳的端点会从负载均衡器中移除,直到其再次恢复健康状态。健康检查仅适用于虚拟机工作负载。Pod 工作负载可以使用内置的 Kubernetes 探测机制来确定特定端点是否正常运行。

直接从 Kubernetes 用户集群使用 Kubernetes 服务时,您可以使用 Service 对象,而不是之前列出的组件。您只能以创建 Service 对象的集群中的工作负载为目标。

外部和内部负载均衡

GDC 应用可访问以下网络服务类型:

  • 内部负载平衡器 (ILB):可让您向组织内的其他集群公开服务。
  • 外部负载平衡器 (ELB):从可从外部工作负载路由的范围分配 VIP 地址,并向 GDC 组织外部(例如 GDC 实例内部或外部的其他组织)公开服务。为 ELB 使用会话亲和性,以确保来自客户端的请求始终路由到同一后端。

全球和可用区级负载平衡器

您可以创建全球级或可用区级负载平衡器。全球负载平衡器的范围涵盖整个 GDC 宇宙。每个 GDC 宇宙可以包含多个 GDC 可用区,这些可用区组织成相互关联并共享控制平面的区域。例如,包含两个区域(每个区域有三个地区)的宇宙可能如下所示:us-virginia1-aus-virginia1-bus-virginia1-ceu-ams1-aeu-ams1-beu-ams1-c

区域级负载平衡器的范围仅限于创建时指定的可用区。每个可用区都是独立的灾难域。一个可用区管理使用本地控制平面的基础架构、服务、API 和工具。

如需详细了解 GDC 世界中的全球资源和地区资源,请参阅多地区概览

您可以使用以下方法创建全球级负载平衡器:

您可以使用以下方法创建地区负载平衡器:

  • 使用 Networking Kubernetes 资源模型 (KRM) API。使用 API 版本 networking.gdc.goog 创建区域资源。
  • 使用 gdcloud CLI。 使用 gcloud CLI 命令时,请使用 --zone 标志指定要为哪些可用区创建负载平衡器。
  • 直接从 Kubernetes 集群使用 Kubernetes 服务。

服务虚拟 IP 地址

ILB 会分配仅供组织内部使用的 VIP 地址。这些 VIP 地址无法从组织外部访问;因此,您只能使用它们向组织内的其他应用公开服务。同一实例中的组织之间的这些 IP 地址可能会重叠。

另一方面,ELB 会分配可从组织外部访问的外部 VIP 地址。因此,ELB VIP 地址在所有组织中必须是唯一的。通常,组织可使用的 ELB VIP 地址较少。

限制

  • 不得为 Pod 工作负载配置 BackendService 资源和 HealthCheck 资源。请注意,BackendService 规范中的 HealthCheckName 是可选的,在配置包含 pod 的负载均衡器时必须省略。

  • 负载均衡器配置无法以涉及 Pod 和虚拟机的混合工作负载为目标。因此,不允许在单个 BackendService 资源中混合使用涉及 Pod 和虚拟机的后端。

  • 全局负载均衡器自定义资源(ForwardingRuleExternalForwardingRuleInternalBackendServiceHealthCheck)的名称不得与这些区域负载均衡器自定义资源的名称相同。

    后续步骤

  • 配置内部负载平衡器

  • 配置外部负载平衡器