您需要設定的 NSX-T Data Center 資源包含覆疊傳輸區域、第 0 層邏輯路由器、要連線節點虛擬機器的邏輯交換器、Kubernetes 節點的 IP 區塊,以及 SNAT 的 IP 集區。

重要:

如果您正在使用 NSX-T Data Center 2.4 或更新版本執行,則必須使用進階網路與安全性索引標籤設定 NSX-T 資源。

在 NCP 組態檔 ncp.ini 中,NSX-T Data Center 資源是使用其 UUID 或名稱指定的。

覆疊傳輸區域

登入 NSX Manager,並尋找用於容器網路的覆疊傳輸區域,或是建立新的覆疊傳輸區域。

透過在 ncp.ini[nsx_v3] 區段中設定 overlay_tz 選項,指定叢集的覆疊傳輸區域。此步驟是可選的。如果沒有設定 overlay_tz,NCP 將自動從第 0 層路由器擷取覆疊傳輸區域識別碼。

第 0 層邏輯路由

登入 NSX Manager,並尋找用於容器網路的路由器,或是建立新的路由器。

透過在 ncp.ini[nsx_v3] 區段中設定 tier0_router 選項,指定叢集的第 0 層邏輯路由器。

備註:

路由器必須在主動備用模式中建立。

邏輯交換器

節點用於資料流量的 vNIC 必須連線至覆疊邏輯交換器。節點的管理介面並非強制連線至 NSX-T Data Center,儘管這麼做可以更輕鬆地進行設定。您可以透過登入 NSX Manager 來建立邏輯交換器。在交換器上,建立邏輯連接埠並向其附加節點 vNIC。邏輯連接埠必須具有下列標記:

  • 標記:<cluster_name>,範圍:ncp/cluster

  • 標記:<node_name>,範圍:ncp/node_name

<cluster_name> 值必須符合 ncp.ini[coe] 區段中 cluster 選項的值。

Kubernetes 網繭的 IP 區塊

登入 NSX Manager,並建立一或多個 IP 區塊。以 CIDR 格式指定 IP 區塊。

透過在 ncp.ini[nsx_v3] 區段中設定 container_ip_blocks 選項,指定 Kubernetes 網繭的 IP 區塊。

您也可以建立非 SNAT 命名空間專用的 IP 區塊。

透過在 ncp.ini[nsx_v3] 區段中設定 no_snat_ip_blocks 選項,指定非 SNAT IP 區塊。

如果您在 NCP 執行時建立無 SNAT IP 區塊,則必須重新啟動 NCP。否則,NCP 將會繼續使用共用的 IP 區塊,直到耗盡為止。

備註:

當您建立 IP 區塊時,首碼長度不得大於 NCP 之組態檔 ncp.ini 中的 subnet_prefix 參數值。

SNAT 的 IP 集區

IP 集區用來配置 IP 位址,從而用於透過 SNAT 規則轉譯網繭 IP,以及用於透過 SNAT/DNAT 規則公開入口控制站,如同 Openstack 浮動 IP。這些 IP 位址也稱為「外部 IP」。

多個 Kubernetes 叢集會使用相同的外部 IP 集區。每個 NCP 執行個體皆會針對其管理的 Kubernetes 叢集使用此集區的子網路。依預設,系統會使用網繭子網路的相同子網路首碼。如需使用不同的子網路大小,請更新 ncp.ini[nsx_v3] 區段中的 external_subnet_prefix 選項。

登入 NSX Manager,並建立集區或尋找現有集區。

透過在 ncp.ini[nsx_v3] 區段中設定 external_ip_pools 選項,指定 SNAT 的 IP 集區。

您也可以透過新增註解至服務來設定特定服務的 SNAT。例如,

    apiVersion: v1
    kind: Service
    metadata:
      name: svc-example
      annotations:
        ncp/snat_pool: <external IP pool ID or name>
      selector:
        app: example
    ...

NCP 將針對此服務設定 SNAT 規則。規則的來源 IP 為後端網繭集。目的地 IP 是從指定的外部 IP 集區進行配置的 SNAT IP。請注意下列事項:

  • ncp/snat_pool 所指定的 IP 集區應在服務設定之前已存在於 NSX-T Data Center 中。IP 集區必須有標記 {"ncp/owner": cluster:<cluster>}

  • NSX-T Data Center 中,服務的 SNAT 規則優先順序高於專案的優先順序。

  • 如果網繭已設定多個 SNAT 規則,則只有一個規則適用。

您可以透過將下列標記新增至 IP 集區,指定可從 SNAT IP 集區配置 IP 的命名空間。

  • 範圍:ncp/owner,標記:ns:<namespace_UUID>

您可以使用下列其中一個命令取得命名空間 UUID:

oc get ns -o yaml

請注意下列事項:

  • 每個標記應指定一個 UUID。您可以為同一個集區建立多個標記。

  • 如果您根據舊標記為一些命名空間配置 IP 後變更標記,將不會回收這些 IP,直到服務的 SNAT 組態變更或 NCP 重新啟動為止。

  • 命名空間擁有者標記是可選的。如果沒有此標記,則可從 SNAT IP 集區配置 IP 給任何命名空間。

(選擇性) 防火牆標記區段

若要允許管理員建立防火牆規則同時不影響 NCP 根據網路原則建立的防火牆區段,請登入 NSX Manager,然後建立兩個防火牆區段。

透過在 ncp.ini[nsx_v3] 區段中設定 bottom_firewall_section_markertop_firewall_section_marker 選項,指定標記防火牆區段。

底部防火牆區段必須位於頂部防火牆區段下方。建立這些防火牆區段之後,由 NCP 建立用於隔離的所有防火牆區段將建立於底部防火牆區段之上,而 NCP 建立用於原則的所有防火牆區段將建立於頂部防火牆區段之下。如果沒有建立這些標記區段,則所有隔離規則將會在底部建立,而所有原則區段將會在頂部建立。每個叢集的各個標記防火牆區段的值必須是唯一的,否則將導致錯誤。