此概览页面介绍了如何在 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-a、us-virginia1-b、us-virginia1-c 和 eu-ams1-a、eu-ams1-b、eu-ams1-c。
区域级负载平衡器的范围仅限于创建时指定的可用区。每个可用区都是独立的灾难域。一个可用区管理使用本地控制平面的基础架构、服务、API 和工具。
如需详细了解 GDC 世界中的全球资源和地区资源,请参阅多地区概览。
您可以使用以下方法创建全球级负载平衡器:
- 使用 Networking Kubernetes 资源模型 (KRM) API。使用 API 版本
networking.global.gdc.goog创建全局资源。 - 使用 gdcloud CLI。
使用 gdcloud CLI 命令时,请使用
--global标志指定全局范围。
您可以使用以下方法创建地区负载平衡器:
- 使用 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 和虚拟机的后端。全局负载均衡器自定义资源(
ForwardingRuleExternal、ForwardingRuleInternal、BackendService或HealthCheck)的名称不得与这些区域负载均衡器自定义资源的名称相同。后续步骤