Google Distributed Cloud (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 服务时,您可以使用 Service 对象,而不是前面列出的组件。您只能以创建 Service 对象的集群中的工作负载为目标。
外部和内部负载均衡
GDC 应用可访问以下网络服务类型:
- 内部负载平衡器 (ILB):可让您向组织内的其他集群公开服务。
- 外部负载平衡器 (ELB):从可从外部工作负载路由的范围分配 VIP 地址,并将服务公开给 GDC 组织外部的实体,例如 GDC 实例内部或外部的其他组织。
服务虚拟 IP 地址
ILB 会分配仅供组织内部使用的 VIP 地址。这些 VIP 地址无法从组织外部访问;因此,您只能使用它们向组织内的其他应用公开服务。同一实例中的组织之间的这些 IP 地址可能会重叠。
另一方面,ELB 会分配可从组织外部访问的外部 VIP 地址。因此,ELB VIP 地址在所有组织中必须是唯一的。通常,组织可使用的 ELB VIP 地址会更少。