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 服務。

您必須先配置要指派給節點虛擬機器的 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_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