本文档介绍了 Google Distributed Cloud 支持的负载均衡方案。
您可以使用两种负载均衡方案。请选择看似最适合您的环境和需求的方案。例如,您可以选择需要最低配置的方案。或者,您可以选择符合网络中已有的负载均衡器的方案。
以下是可用的方案:
捆绑式 MetalLB
针对任何第三方负载均衡器(例如 F5 BIG-IP Citrix)进行手动负载均衡
MetalLB
MetalLB 负载均衡器与 Google Distributed Cloud 捆绑在一起,尤其易于配置。MetalLB 组件在集群节点上运行,因此您无需为负载均衡器创建单独的虚拟机。
您可以将 MetalLB 配置为执行 IP 地址管理。这意味着当开发者创建 LoadBalancer
类型的 Service 时,他们无需为 Service 指定 VIP。取而代之的是,MetalLB 可从您提前提供的地址池中选择 VIP。
如需了解详情,请参阅使用 MetalLB 进行捆绑式负载均衡。
Citrix
以手动设置负载均衡器为例介绍了如何设置 Citrix 负载均衡器。使用手动设置的任何负载均衡器时,您必须配置 VIP、节点地址和 nodePort
值之间的映射。如需了解如何为 Citrix 负载均衡器执行此操作,请参阅使用 Citrix 手动进行负载均衡。
手动负载均衡的一般信息
您可以使用选择的任何负载均衡器,只要手动进行设置即可。使用手动设置的任何负载均衡器时,您必须配置 VIP、节点地址和 nodePort
值之间的映射。如需了解有关如何执行此操作的一般信息,请参阅手动负载均衡。
预留虚拟 IP 地址
无论您使用哪个负载均衡器,您都必须预留几个虚拟 IP 地址(VIP)以用于负载均衡。
对于管理员集群,您必须预留以下 VIP 地址:
- Kubernetes API 服务器的 VIP 地址
- 插件的 VIP
对于要创建的每个用户集群,您必须预留以下 VIP 地址:
- Kubernetes API 服务器的 VIP 地址
- Ingress 服务的 VIP 地址
例如,假设您打算使用两个用户集群。那么,您的管理员集群需要两个 VIP,每个用户集群需要两个 VIP。因此,您需要预留六个 VIP 地址。
节点 IP 地址
如果您选择 MetalLB 作为负载均衡器,则可以为集群节点使用静态 IP 地址,也可以让集群节点从 DHCP 服务器获取其 IP 地址
如果您选择手动负载均衡方案,则必须为集群节点使用静态 IP 地址。
如果您选择使用静态 IP 地址,则必须为管理员集群中的节点和要创建的所有用户集群中的节点预留足够的地址。如需详细了解要预留的节点 IP 地址数量,请参阅规划 IP 地址。
在集群中创建服务
在用户集群运行后,应用开发者可能希望创建 Kubernetes Service 并将其公开给外部客户端。
对于 LoadBalancer
类型的 Service,您必须在负载均衡器上配置 VIP。这些 VIP 的配置方式取决于您选择的负载均衡器。
MetalLB
在用户集群配置文件中,指定 MetalLB 控制器使用的地址池以将 VIP 分配给 Service。当开发者创建 LoadBalancer
类型的 Service 时,MetalLB 控制器会从池中选择一个地址,并将此地址分配给该 Service。开发者无需在 Service 清单中指定 loadBalancerIP
的值。
手动配置的负载均衡器
如果您选择了手动负载均衡方案,则开发者可以按照以下步骤将 Service 公开给外部客户端:
创建类型为 NodePort 的 Service。
为该 Service 选择 VIP。
手动配置负载均衡器,以便发送到 VIP 的流量会转发到该 Service。