本主题介绍如何将 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
服务:
AVI_CONTROL_PLANE_HA_PROVIDER = false
。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_RANGES
或 KUBEVIP_LOADBALANCER_CIDRS
。如果同时设置这两个地址,则 kube-vip-load-balancer
组件仅从 KUBEVIP_LOADBALANCER_CIDRS
分配 IP 地址 IP,即使在设置的范围内没有更多可用地址也是如此。
为避免冲突,每个集群必须具有不同的 IP 范围。不同集群的 IP 和 CIDR 范围不得重叠。
对于 Kube-VIP 作为负载均衡器的工作负载集群,可以通过更改 Kube-VIP CPI 配置中的 loadbalancerCIDRs
或 loadbalancerIPRanges
值来扩展 Kube-VIP 均衡流量的 IP 地址范围。
注意您只能扩展 Kube-VIP 的范围,无法降低其现有的 IP 范围。
将 kubectl
的上下文设置为管理集群。
kubectl config use-context my-mgmnt-cluster-admin@my-mgmnt-cluster
编辑目标集群的 KubevipCPIConfig
配置:
kubectl edit kubevipcpiconfig CLUSTER-NAME -n CLUSTER-NAMESPACE
其中,CLUSTER-NAME
和 CLUSTER-NAMESPACE
是要扩展 Kube-VIP 范围的工作负载集群的名称和命名空间。
在 KubevipCPIConfig
规范中,更改 loadbalancerCIDRs
或 loadbalancerIPRanges
值,以便仅添加 IP 地址。例如,您可以将 loadbalancerCIDRs: 10.0.0.1/24
更改为以下任一项:
10.0.0.0/24,10.0.1.0/24
10.0.0.0/16