GKE on VMware 负载均衡概览

本文档介绍 GKE on VMware 支持的负载均衡选项。

您可以使用多种负载均衡方案。请选择看似最适合您的环境和需求的方案。例如,您可以选择需要最低配置的方案。或者,您可以选择符合网络中已有的负载均衡器的方案。

以下是可用的方案:

  • 捆绑式 MetalLB

  • Seesaw 捆绑(不适用于使用 Controlplane V2 的用户集群。)

  • 集成 F5 BIG-IP(不适用于使用 Controlplane V2 的用户集群。)

  • 手动设置的 F5 BIG-IP

  • 手动设置的 Citrix

  • 手动设置的任何负载均衡器

MetalLB

MetalLB 负载均衡器与 GKE on VMware 捆绑在一起,特别易于配置。MetalLB 组件在集群节点上运行,因此您无需为负载均衡器创建单独的虚拟机。

您可以将 MetalLB 配置为执行 IP 地址管理。这意味着当开发者创建 LoadBalancer 类型的 Service 时,他们无需为 Service 指定 VIP。取而代之的是,MetalLB 可从您提前提供的地址池中选择 VIP。

如需了解详情,请参阅使用 MetalLB 进行捆绑式负载均衡

Seesaw

Seesaw 负载均衡器与 GKE on VMware 捆绑在一起,需要的手动配置比 MetalLB 要求更多。Seesaw 负载平衡器在与集群节点分开的虚拟机上运行。使用 Controlplane V2 的用户集群不支持 Seesaw 负载均衡器。我们建议您改用 MetalLB。

如需了解详情,请参阅使用 Seesaw 进行捆绑式负载均衡

F5 BIG-IP

F5 BIG-IP 负载均衡器未与 GKE on VMware 捆绑,因此您必须获得许可,并将负载均衡器单独设置,而无需安装 GKE on VMware。

您可以通过以下方式将 GKE on VMware 配置为与 F5 BIG-IP 集成:当开发者创建类型为 LoadBalancer 的 Service 并为该服务指定 VIP 时,GKE on VMware 会自动在负载均衡器上配置 VIP。

使用 Controlplane V2 的用户集群不支持 F5 BIG-IP 集成。您可以将 F5 BIG-IP 用作手动配置的负载均衡器。在这种情况下,GKE on VMware 不会自动配置 Service VIP。

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 地址

如果您选择以下某个负载均衡方案,则可以为集群节点使用静态 IP 地址,也可以让集群节点从 DHCP 服务器获取其 IP 地址:

  • MetalLB
  • Seesaw
  • 集成式 F5 BIG-IP

如果您选择手动负载均衡方案,则必须为集群节点使用静态 IP 地址。

如果您选择使用静态 IP 地址,则必须为管理员集群中的节点和要创建的所有用户集群中的节点预留足够的地址。如需详细了解要预留的节点 IP 地址数量,请参阅规划 IP 地址

在集群中创建 Service

在用户集群运行后,应用开发者可能希望创建 Kubernetes Service 并将其公开给外部客户端。

对于 LoadBalancer 类型的 Service,您必须在负载平衡器上配置 VIP。这些 VIP 的配置方式取决于您选择的负载均衡器。

MetalLB

在用户集群配置文件中,指定 MetalLB 控制器使用的地址池以将 VIP 分配给 Service。当开发者创建 LoadBalancer 类型的 Service 时,MetalLB 控制器会从池中选择一个地址,并将此地址分配给该 Service。开发者无需在 Service 清单中指定 loadBalancerIP 的值。

Seesaw

当开发者创建 LoadBalancer 类型的 Service 时,需要指定外部 IP 地址。例如:

spec:
  type: LoadBalancer
  loadBalancerIP: 192.168.100.1

GKE on VMware 会自动在 Seesaw 虚拟机的网络接口上配置指定地址。

集成式 F5 BIG-IP

当开发者创建 LoadBalancer 类型的 Service 时,需要指定外部 IP 地址。例如:

spec:
  type: LoadBalancer
  loadBalancerIP: 192.168.100.2

GKE on VMware 会在 F5 BIG-IP 负载均衡器的网络接口上自动配置指定的地址。

手动配置的负载均衡器

如果您选择了手动负载均衡方案,则开发者可以按照以下步骤将 Service 公开给外部客户端:

  • 创建类型为 NodePort 的 Service。

  • 为该 Service 选择 VIP。

  • 手动配置负载均衡器,以便发送到 VIP 的流量会转发到该 Service。