用來處理入口調整的負載平衡器 CRD

您可以建立 CRD (CustomResourceDefinitions) 來監控 NSX 負載平衡器的使用量,並建立額外的 NSX 第 7 層負載平衡器,以處理預設負載平衡器無法處理的入口工作負載。這些 CRD 不適用於調整針對 Kubernetes 負載平衡器服務建立的第 4 層負載平衡器。
如果您有共用的第 1 層拓撲,則必須在
nsx-ncp-config
ConfigMap 中的
[nsx_v3]
下方設定
tier0_gateway
才能使用此功能。
這些 CRD 為:
  • NSXLoadBalancerMonitor
    - 此 CRD 可用來報告 NSX 負載平衡器的使用量統計資料。在原則模式中,此 CRD 將僅監控使用負載平衡器 CRD 建立的命名空間負載平衡器。
  • LoadBalancer
    - 此 CRD 可用來建立新的 NSX 負載平衡器。此資源的定義位於 NCP YAML 檔案中。在原則模式和 TKGI 部署中,這是命名空間資源。在管理程式模式部署中,這是叢集範圍內的資源。
在管理程式模式和原則模式中啟用此功能的程序是相同的。
執行下列步驟以啟用此功能:
  • [k8s]
    區段中的
    enable_lb_crd
    選項設定為
    True
  • 使用下列命令套用 NCP YAML 檔案:
    kubectl apply -f ncp-<platform>.yaml
若要建立新的 NSX 負載平衡器,請套用可定義負載平衡器 CRD 的 YAML 檔案。例如,
apiVersion: vmware.com/v1alpha1 kind: LoadBalancer metadata: name: cluster1-lbs0 spec: httpConfig: {} size: SMALL
此 YAML 檔案將建立指定大小的 NSX 負載平衡器,以及一組沒有持續性、SSL 或 X 轉送設定的第 7 層虛擬伺服器。
size
參數可以是
SMALL
MEDIUM
LARGE
。預設值為
SMALL
。建立 NSX 負載平衡器後,大小將無法變更,並且對
size
參數的任何更新都將被忽略。虛擬伺服器的 IP 是透過針對負載平衡器設定的預設外部集區配置。依預設支援的連接埠為 80 和 443。如果自訂連接埠包含在 HTTP 主機標頭中,則支援非標準連接埠。請注意,只有非 TLS 入口才支援自訂連接埠。此外,由負載平衡器 CRD 建立的虛擬伺服器不支援「啟用存取記錄」參數。
若要檢查負載平衡器 CRD 的建立狀態,請執行下列命令:
kubectl get lb <name of the LoadBalancer> -o yaml
結果看起來應如下所示:
status: conditions: - status: "True" type: Ready httpVirtualIP: <realized virtual IP>
此結果指出建立已成功。如果建立失敗,
status
將會是
False
,並且不會有虛擬 IP。
您也可以自訂 NSX 負載平衡器和虛擬伺服器的設定。若要設定虛擬伺服器的 IP 和連接埠:
spec: httpConfig: virtualIP: <ip address, default to auto-allocate> port: <port number, default to 80>
附註:不得為不同的負載平衡器 CRD 設定相同的虛擬 IP。
若要指定工作階段相似性和 X 轉送模式:
spec: httpConfig: xForwardedFor: <INSERT or REPLACE, default to None> affinity: type: <source_ip or cookie, default to None> timeout: <timeout number, default to 10800>
若要設定 TLS 設定:
spec: httpConfig: tls: port: <tls port number, default to 443> secretName: <name of secret, default to None>
請注意,即使您將 HTTP 和 HTTPS 連接埠設為非預設值,因為有 Kubernetes 限制,入口印表機會在顯示入口狀態時一律顯示預設連接埠值 (80 和 443)。您仍應使用設定的連接埠來存取入口。例如,
curl -I -HHost:tea.example.com http://$INGRESS_IP:$CRD_LB_HTTP_PORT/tea
您可以在建立負載平衡器之前或之後建立密碼。若要更新憑證,請先從負載平衡器規格中移除
secretName
、更新密碼的資料,然後使用上述組態重新連結相同的密碼。建立新密碼並更新
secretName
也有作用。請注意,不支援在不同的 CRD 負載平衡器之間共用相同的密碼資料。您必須將 CRD 負載平衡器設定為使用不同的憑證。
若要檢視 NSX 負載平衡器的狀態和統計資料,請執行下列命令:
kubectl get lbm
這會列出所有的 NSX 負載平衡器監視器,每個 NSX 負載平衡器一個。會顯示下列資訊:
  • 使用量 - NSX 負載平衡器上的工作負載數目。
  • 流量 - 每個虛擬伺服器的彙總統計資料。
  • 健全狀況 - 此欄位有兩個維度:
    • servicePressureIndex
      - 這表示負載平衡器的效能。提供兩個值:分數和嚴重性。
    • infraPressureIndex
      - 這表示基礎的基礎結構元件的效能。在 NCP 2.5.1 中,此值並非一律正確無誤。
    • 欄位
      metrics
      可讓您瞭解在計算健全狀況分數時要考慮的參數。
當負載平衡器的
servicePressureIndex
HIGH
時,您可以將入口工作負載移轉至其他負載平衡器,它必須是使用負載平衡器 CRD 建立的預設負載平衡器或多個負載平衡器。
若要將入口置於專用的負載平衡器上,請將註解新增至入口規格。例如,
annotations: nsx/loadbalancer: <name of the LoadBalancer CRD>
如果註解遺失或設定為
null
,即會將入口放置在預設的 NSX 負載平衡器上。