vSphere IaaS control plane 不支援編輯 NCP 組態檔 ncp.ini。您可以在 NCP 中建立自訂資源定義 (CRD),以設定網路參數和負載平衡器參數。

NCPSetting CRD

建立 NCPSetting CRD,並為 NCP 組態設定值。

下表介紹了使用者可以設定的網路參數和負載平衡器參數:
參數 說明
log_dropped_traffic 指示是否記錄分散式防火牆拒絕規則。

值:TrueFalse

預設值為 false

log_firewall_traffic 指示是否記錄 DFW 規則。
值為:
  • ALL.為所有 DFW 規則啟用記錄。
  • DENY.僅為拒絕規則啟用記錄。
pool_algorithm 此選項用於在負載平衡器集區物件中設定負載平衡演算法。
值為:
  • Round_Robin
  • Weighted_Round_Robin
  • Least_Connection
  • Weighted_Least_Connection
  • IP-Hash

預設值為 Round-Robin。

service_size 此選項用於設定負載平衡器大小。

值為 SmallMediumLarge

預設值為 Small

l7_persistence 此選項用於設定負載平衡器持續性選項。
值為:
  • cookie.
  • source_ip
l7_persistence_timeout L7 持續性設定檔上的持續性逾時值 (以秒為單位)。
cookie_name l7_persistence type 設定為 cookie 時,指定 cookie 名稱。
x_forward_for 為輸入中的標頭啟用 X_forward_for。
值為:
  • Insert
  • Replace
snat_rule_logging 此選項用於選取 SNAT 規則的記錄。
值為:
  • None
  • Basic.為所有命名空間記錄。
  • Extended.為所有命名空間和服務記錄。
vs_access_log 記錄入口和路由的虛擬伺服器內容。
值為:
  • VS_access_log_none
  • access_log_enabled.為第 7 層虛擬伺服器啟用記錄。
  • log_significant_event_only.HTTP 回應狀態為 >= 400 的請求會被視為重大事件。

預設值為 VS_access_log_none

ip_reallocation_time 可重新配置已釋放的 IP 之前的時間 (以秒為單位)。

如需有關 NCP 和 NSX 物件的詳細資訊,請參閱 NSX 說明文件。

執行下列步驟以啟用此功能:
  1. enable_ncp_setting_crd 設定為 True
  2. 使用以下範本建立 YAML 檔案:
    apiVersion: apiextensions.k8s.io/v1
    kind: CustomResourceDefinition
    metadata:
      name: ncpsettings.vmware.com
    spec:
      group: vmware.com
      versions:
        - name: v1
          served: true
          storage: true
          schema:
            openAPIV3Schema:          
              type: object
                properties:
                  spec:
                    type: object
                    properties:
                      nsx_v3:
                        type: object
                        properties:
                          log_dropped_traffic:
                            description: 'Indicates whether distributed firewall DENY rules are logged.'
                            type: boolean
                          log_firewall_traffic:
                            description: 'Indicate whether DFW rules are logged.'
    ........ All configs that are allow to be configured via CRD........
                           
      scope: Cluster
      names:
        plural: ncpsettings
        singular: ncpsetting
        kind: NCPSetting
        shortNames:
        - ncpstg
    例如:
    apiVersion: vmware.com/v1alpha2
    kind: NCPSetting
    metadata:
        name: ncp-setting-crd
    spec:
        nsx_v3:
            log_dropped_traffic: True
            log_firewall_traffic: ALL
            pool_algorithm: Round_Robin
            l7_persistence: cookie
            x_forwarded_for: Insert
  3. 使用下列命令套用 YAML 檔案:

    kubectl apply -f ncp-setting-crd.yaml.j2

為防止多個 CRD 覆寫相同的組態值,NCP 僅處理名稱為 ncp-setting-crd 的 CRD 物件。具有不同名稱的其他 CRD 將標註為有錯誤,NCP 不會處理這些 CRD。

覆寫 NCP 組態

CRD 中的組態參數可能具有相應的 NSX 物件。建立 CRD 以覆寫參數時,CRD 不會變更物件中的參數,下列情況除外:
  • l7_persistencel7_persistence_timeoutcookie_name。如果透過 CRD 變更了 l7_persistence,NCP 會使用值 l7_persistencel7_persistence_timeoutcookie_name 建立新的持續性設定檔。

    如果透過 CRD 變更了 l7_persistence_timeoutcookie_name,則會根據新值更新現有設定檔。

  • x_forwarded_for.如果透過 CRD 變更了 x_forwarded_for,NCP 會根據其值建立新的應用程式設定檔。
  • vs_access_log.如果透過 CRD 變更了 vs_access_log,NCP 會相應地更新虛擬伺服器的記錄選項。