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 相同。服務將處於非作用中狀態。
- ncp/error.loadbalancer: IP_POOL_NOT_FOUND
- 第 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 位址。您可以導覽至 ,以查看該群組。