NCP 將為每個服務連接埠建立第 4 層負載平衡器虛擬伺服器和集區。

有關此功能的詳細資料:
  • TCP 和 UDP 均受支援。
  • 每個服務都具有唯一的 IP 位址。
  • 服務會根據負載平衡器定義 loadBalancerIP 欄位的外部 IP 集區配置 IP 位址。loadBalancerIP 欄位可以為空白,並具有 IP 位址、名稱或 IP 集區的識別碼。如果 loadBalancerIP 欄位為空白,會從 ncp.ini[nsx_v3] 區段中的 external_ip_pools_lb 選項所指定的外部 IP 集區配置 IP。如果 external_ip_pools_lb 選項不存在,則會使用 external_ip_pools 所指定的集區。負載平衡器服務將在此 IP 位址和服務連接埠上公開。
  • 您可以透過變更組態並重新啟動 NCP,變更為不同的 IP 集區。
  • loadBalancerIP 指定的 IP 集區必須有標籤 scope: ncp/owner, tag: cluster:<cluster_name>

  • 在原則模式中,支援沒有選取器且類型為 LoadBalancer 的服務。對於此類服務,NSX-T 負載平衡器的 SNAT IP 將是類型為 LoadBalancer 之服務的 IP。如果您更新類型為 LoadBalancer 之服務的 IP,系統將會更新 NSX-T 負載平衡器的 SNAT IP。請注意,若服務沒有選取器,則無法設定為沒有選取器的其他服務端點。
  • 已向服務標註錯誤。錯誤索引鍵為 ncp/error.loadbalancer。可能的錯誤如下:
    • ncp/error.loadbalancer: IP_POOL_NOT_FOUND

      這個錯誤指示您指定 loadBalancerIP: <nsx-ip-pool>,但 <nsx-ip-pool> 不存在。服務將處於非作用中狀態。若要修正錯誤,請指定有效的 IP 集區,刪除服務,然後再重新建立服務。

    • ncp/error.loadbalancer: IP_POOL_EXHAUSTED

      這個錯誤指示您指定 loadBalancerIP: <nsx-ip-pool>,但 IP 集區已用盡其 IP 位址。服務將處於非作用中狀態。若要修正錯誤,請指定具有可用 IP 位址的 IP 集區,刪除服務,然後再重新建立服務。

    • ncp/error.loadbalancer: IP_POOL_NOT_UNIQUE

      這個錯誤指出多個 IP 集區具有 loadBalancerIP: <nsx-ip-pool> 所指定的名稱。服務將處於非作用中狀態。

    • ncp/error.loadbalancer: POOL_ACCESS_DENIED

      此錯誤指出 loadBalancerIP 所指定的 IP 集區沒有標籤 scope: ncp/owner, tag: cluster:<cluster_name>,或標籤中指定的叢集與 Kubernetes 叢集的名稱不相符。

    • ncp/error.loadbalancer: LB_VIP_CONFLICT

      此錯誤表示 loadBalancerIP 欄位中的 IP 與作用中服務的 IP 相同。服務將處於非作用中狀態。

  • 第 4 層負載平衡器支援自動調整。如果 Kubernetes 負載平衡器服務已建立或修改,使其需要額外的虛擬伺服器,而現有的第 4 層負載平衡器沒有容量,將會建立新的第 4 層負載平衡器。NCP 也將刪除不再連結有虛擬伺服器的第 4 層負載平衡器。此功能預設為啟用狀態。如果想要停用此功能,您必須在 NCP ConfigMap 中將 l4_lb_auto_scaling 設定為 false
  • 在您建立 LoadBalancer 類型的服務時,您可以指定 loadBalancerSourceRanges 參數。例如:
    kind: Service
    metadata:
      name: nginx-service-lb
      labels:
        app: nginx
    spec:
      type: LoadBalancer
      loadBalancerSourceRanges:
        - "10.30.88.116/24"
      ports:
        - port: 80
          targetPort: 80
          protocol: TCP
          name: tcp
    ...

    所建立的 NSX-T 負載平衡器只會允許來自指定來源 IP 位址的流量。您可以在 NSX Manager 中查看虛擬伺服器的存取清單控制項,來驗證這一點。它將允許存取特定的群組。該群組將包含 loadBalancerSourceRanges 中指定的 IP 位址。您可以導覽至詳細目錄 > 群組,以查看該群組。