NSX ALB 作為控制平面端點提供者

當與 Tanzu Kubernetes Grid 整合時,NSX ALB 可以提供端點 VIP 給叢集,並在叢集的控制平面節點上執行負載平衡。此功能還可讓您自訂叢集的 API 伺服器連接埠和端點 VIP 網路。

下表比較了 NSX ALB 與 Kube-Vip 上所支援的功能:

NSX ALB Kube-Vip
IPAM 的叢集端點 VIP 由 NSX ALB 提供
由客戶手動管理
控制平面節點的負載平衡 流量將負載平衡到所有控制平面節點
流量只會路由到主控制平面節點
API 伺服器的連接埠 任何連接埠 (預設值為 6443)
任何連接埠 (預設值為 6443)

將 NSX ALB 設定為叢集端點 VIP 提供者

若要將 NSX ALB 設定為管理叢集中的叢集端點 VIP 提供者,請執行以下動作:

  1. 建立管理叢集組態 YAML 檔案,並在該檔案中新增以下欄位:

    AVI_CONTROL_PLANE_HA_PROVIDER: true
    
    
  2. 如果您要對端點 VIP 使用靜態 IP 位址,請在檔案中新增以下欄位:

    VSPHERE_CONTROL_PLANE_ENDPOINT: <IP-ADDRESS>
    
    

    確定 VIP 存在於 VIP 網路中指定的靜態 IP 集區內。

  3. 如果要為 API 伺服器指定連接埠,請在檔案中新增以下欄位:

    AVI_CONTROL_PLANE_HA_PROVIDER: true
    CLUSTER_API_SERVER_PORT: <PORT-NUMBER>
    
    
    附註

    管理叢集及其工作負載叢集會使用此連接埠來連線至 API 伺服器。

  4. 使用 tanzu management-cluster create 命令來建立管理叢集。

現在,NSX ALB 已設定為管理叢集的端點 VIP 提供者。

若要將 NSX ALB 設定為工作負載叢集中的叢集端點 VIP 提供者,請執行以下動作:

  1. 建立工作負載叢集組態 YAML 檔案,並新增以下欄位:

    AVI_CONTROL_PLANE_HA_PROVIDER: true
    
  2. 如果您要對端點 VIP 使用靜態 IP 位址,請在檔案中新增以下欄位:

    AVI_CONTROL_PLANE_HA_PROVIDER: true
    VSPHERE_CONTROL_PLANE_ENDPOINT: <IP-ADDRESS>
    
    

    確定 VIP 存在於 VIP 網路中指定的靜態 IP 集區內。

  3. 使用 tanzu cluster create 命令來部署工作負載叢集。

現在,NSX ALB 已設定為工作負載叢集的端點 VIP 提供者。

叢集端點和工作負載服務的個別 VIP 網路

如果要在 NSX ALB Essentials Edition 上使用此功能,請確保所使用的網路未設定任何防火牆或網路原則。如果已在網路上設定防火牆或網路原則,請部署具有自動閘道功能的 NSX ALB Enterprise Edition 以使用此功能。

當使用 NSX ALB 來提供叢集端點 VIP 時,您可以為叢集端點和工作負載服務 (負載平衡器和入口) 的外部 IP 自訂 VIP 網路。您可以將它們劃分成不同的 VIP 網路,以增強安全性並滿足其他網路拓撲需求。

為管理叢集和工作負載叢集設定個別的 VIP 網路

下圖說明當為管理叢集和工作負載叢集設定個別的 VIP 網路時的網路拓撲:

管理叢集和工作負載叢集的個別 VIP 網路

若要為管理叢集和工作負載叢集設定個別的 VIP 網路,請執行以下動作:

  1. 建立管理叢集組態 YAML 檔案,並在該檔案中新增以下欄位:

    AVI_CONTROL_PLANE_HA_PROVIDER: true
    
    # Network used to place workload clusters' services external IPs (load balancer & ingress services)
    AVI_DATA_NETWORK:
    AVI_DATA_NETWORK_CIDR:
    
    # Network used to place workload clusters' endpoint VIPs
    AVI_CONTROL_PLANE_NETWORK:
    AVI_CONTROL_PLANE_NETWORK_CIDR:
    
    # Network used to place management clusters' services external IPs (load balancer & ingress services)
    AVI_MANAGEMENT_CLUSTER_VIP_NETWORK_NAME:
    AVI_MANAGEMENT_CLUSTER_VIP_NETWORK_CIDR:
    
    # Network used to place management clusters' endpoint VIPs
    AVI_MANAGEMENT_CLUSTER_CONTROL_PLANE_VIP_NETWORK_NAME:
    AVI_MANAGEMENT_CLUSTER_CONTROL_PLANE_VIP_NETWORK_CIDR:
    

    如需有關建立管理叢集組態檔的詳細資訊,請參閱建立管理叢集組態檔

  2. 使用 tanzu management-cluster create 命令來建立管理叢集。

叢集的端點 VIP 和負載平衡器服務的外部 IP 現在放置在不同的網路中。

為不同的工作負載叢集設定個別的 VIP 網路

下圖說明當為不同的工作負載叢集設定個別的 VIP 網路時的網路拓撲。

管理叢集和工作負載叢集的個別 VIP 網路

若要為不同的工作負載叢集設定個別的 VIP 網路,請執行以下動作:

  1. 建立 AKODeploymentConfig CR 物件,如以下範例所示:

    apiVersion: networking.tkg.tanzu.vmware.com/v1alpha1
    kind: AKODeploymentConfig
    metadata:
      name: install-ako-for-dev-cluster
    spec:
      adminCredentialRef:
        name: avi-controller-credentials
        namespace: tkg-system-networking
      certificateAuthorityRef:
        name: avi-controller-ca
        namespace: tkg-system-networking
      controller: 1.1.1.1
      cloudName: Default-Cloud
      serviceEngineGroup: Default-Group
      clusterSelector:             # match workload clusters with dev-cluster: "true" label
        matchLabels:
          dev-cluster: "true"
      controlPlaneNetwork:         # clusters' endpoint VIP come from this VIP network
        cidr: 10.10.0.0/16
        name: avi-dev-cp-network
      dataNetwork:                 # clusters' services external IP come from this VIP network
        cidr: 20.20.0.0/16
        name: avi-dev-dp-network
    
    
  2. 將變更套用在管理叢集上:

    kubectl --context=MGMT-CLUSTER-CONTEXT apply -f <FILE-NAME>
    
  3. 在工作負載叢集組態 YAML 檔案中,新增必要欄位,如以下範例所示:

    AVI_CONTROL_PLANE_HA_PROVIDER:  true
    AVI_LABELS: '{"dev-cluster": "true"}'
    
  4. 使用 tanzu cluster create 命令來建立工作負載叢集。

叢集的端點 VIP 和負載平衡器服務的外部 IP 現在放置在不同的網路中。

check-circle-line exclamation-circle-line close-line
Scroll to top icon