本主題說明如何將 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
服務。您必須先配置要指派給節點虛擬機器的 IP 位址範圍,才能建立工作負載叢集,並以 Kube-VIP 作為叢集中的 LoadBalancer
服務。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