Kube-VIP 负载均衡器(vSphere 技术预览版)

本主题介绍如何将 Kube-VIP 用作 L4 负载均衡器,以处理由 vSphere 上的独立管理集群部署的 Tanzu Kubernetes Grid (TKG) 工作负载集群上托管的工作负载。

注意

此功能处于不受支持的技术预览版状态;请参见 TKG 功能状态

背景

Kube-VIP 为 Kubernetes 集群提供虚拟 IP 和负载均衡器,用于 ServiceType LoadBalancer 的控制平面和 Kubernetes 服务,而无需依赖外部硬件或软件。

以前版本的 TKG 已使用 Kube-VIP 为 TKG 控制平面提供 VIP 服务。

注意

TKG 不支持 Kube-VIP 的 ExternalTrafficPolicy Local 模式。

配置

必备条件

您只能在以下项上将 Kube-VIP 配置为 LoadBalancer 服务:

  • vSphere 上基于类的工作负载集群。
  • 配置了 Kube-VIP 作为控制平面 HA 提供程序的工作负载集群,AVI_CONTROL_PLANE_HA_PROVIDER = false
  • 具有管理集群的工作负载集群,该集群将 Kube-VIP 作为控制平面 HA 提供程序。
  • 在基于 Windows 的集群上,不能将 Kube-VIP 作为 LoadBalancer 服务。

创建在集群中使用 Kube-VIP 作为 LoadBalancer 服务的工作负载集群之前,必须先分配它分配给节点虚拟机的 IP 地址范围。LoadBalancer 服务的 IP 地址本身必须在此同一范围内。

参数

要将 Kube-VIP 配置为基于类的工作负载集群的负载均衡器服务,请在集群配置文件中设置以下内容:

  • KUBEVIP_LOADBALANCER_ENABLE

    • 设置为 true 以启用 Kube-VIP。默认为 false
  • KUBEVIP_LOADBALANCER_IP_RANGES

    • 要为 LoadBalancer 类型的服务 IP 分配的非重叠 IP 范围列表。例如:10.0.0.1-10.0.0.23,10.0.2.1-10.0.2.24
  • KUBEVIP_LOADBALANCER_CIDRS

    • 要为 LoadBalancer 类型的服务 IP 分配的非重叠 CIDR 列表。例如:10.0.0.0/24,10.0.2/24

需要 KUBEVIP_LOADBALANCER_IP_RANGESKUBEVIP_LOADBALANCER_CIDRS。如果同时设置这两个地址,则 kube-vip-load-balancer 组件仅从 KUBEVIP_LOADBALANCER_CIDRS 分配 IP 地址 IP,即使在设置的范围内没有更多可用地址也是如此。

为避免冲突,每个集群必须具有不同的 IP 范围。不同集群的 IP 和 CIDR 范围不得重叠。

扩展 Kube-VIP 负载均衡器的 IP 范围

对于 Kube-VIP 作为负载均衡器的工作负载集群,可以通过更改 Kube-VIP CPI 配置中的 loadbalancerCIDRsloadbalancerIPRanges 值来扩展 Kube-VIP 均衡流量的 IP 地址范围。

注意

您只能扩展 Kube-VIP 的范围,无法降低其现有的 IP 范围。

  1. kubectl 的上下文设置为管理集群。

    kubectl config use-context my-mgmnt-cluster-admin@my-mgmnt-cluster
    
  2. 编辑目标集群的 KubevipCPIConfig 配置:

    kubectl edit kubevipcpiconfig CLUSTER-NAME -n CLUSTER-NAMESPACE
    

    其中,CLUSTER-NAMECLUSTER-NAMESPACE 是要扩展 Kube-VIP 范围的工作负载集群的名称和命名空间。

  3. KubevipCPIConfig 规范中,更改 loadbalancerCIDRsloadbalancerIPRanges 值,以便仅添加 IP 地址。例如,您可以将 loadbalancerCIDRs: 10.0.0.1/24 更改为以下任一项:

    • 10.0.0.0/24,10.0.1.0/24
    • 10.0.0.0/16
check-circle-line exclamation-circle-line close-line
Scroll to top icon