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 集區必須有標籤 {"ncp/owner": cluster:<cluster>}

  • 已向服務標註錯誤。錯誤索引鍵為 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 集區沒有標籤 {"ncp/owner": cluster:<cluster>},或標籤中指定的叢集與 Kubernetes 叢集的名稱不相符。

    • ncp/error.loadbalancer: LB_VIP_CONFLICT

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

  • 第 4 層負載平衡器支援自動調整。如果 Kubernetes 負載平衡器服務已建立或修改,使其需要額外的虛擬伺服器,而現有的第 4 層負載平衡器沒有容量,將會建立新的第 4 層負載平衡器。NCP 也將刪除不再連結有虛擬伺服器的第 4 層負載平衡器。此功能預設為啟用狀態。如果想要停用此功能,您必須在 NCP ConfigMap 中將 l4_lb_auto_scaling 設定為 false