在原則模式中設定 NSX 資源Last Updated January 27, 2025
NSX
資源有兩種方法可設定 NCP 的特定網路資源。本節說明如何在原則模式中配置資源。
在 NCP 組態檔
ncp.ini
中,您必須使用 NSX
資源的資源識別碼來加以指定。一般來說,資源的名稱和識別碼是相同的。若要完全確定,請在 NSX Manager Web UI 上,按一下可顯示資源選項的三個點圖示,然後選取將路徑複製到剪貼簿
。貼上應用程式 (例如記事本) 的路徑。路徑的最後一部分是資源識別碼。 閘道和區段
- 建立 Kubernetes 節點的區段,例如Segment1。
- 建立第 0 層閘道,例如T0GW1。如果您沒有共用的第 1 層拓撲,請將ncp.ini的[nsx_v3]區段中的top_tier_router選項設定為閘道的識別碼。請參閱以下有關設定共用的第 1 層拓撲的資訊。如果您計劃在此閘道上設定 NAT 規則,請將 HA 模式設定為作用中/待命。否則,請將其設為作用中/作用中式。啟用路由重新分配。同時,請設定此閘道以存取外部網路。
- 建立第 1 層閘道,例如T1GW1。將此閘道連線至第 0 層閘道。
- 設定T1GW1的路由器通告。至少應啟用 NSX 連線和 NAT 路由。
- 將T1GW1連線至Segment1。請確定閘道連接埠的 IP 位址不會與 Kubernetes 節點的 IP 位址衝突。
- 對於每個節點虛擬機器,請確定容器流量的 vNIC 已連結至自動建立的邏輯交換器。您可以在網路索引標籤中找到與區段相同的名稱 (即Segment1)。
NCP 必須知道 vNIC 的 VIF 識別碼。您可以透過導覽至 [網路] > [區段],來查看自動建立的 Segment1 連接埠。這些連接埠無法編輯,但其標籤內容除外。這些連接埠必須具有下列標籤。其中一個標籤指定節點的名稱。另一個標籤指定叢集的名稱。針對範圍,如下所示指定適當的值。
標籤 | 範圍 |
---|---|
節點名稱 | ncp/node_name |
叢集名稱 | ncp/cluster |
這些標記會自動散佈到對應的邏輯交換器連接埠。如果節點名稱變更,您必須更新標籤。若要擷取節點名稱,您可以執行下列命令:
例如,如果您想要在 NCP 執行時延伸 Kubernetes 叢集,例如,將更多節點新增至叢集,您必須先將這些標記新增到對應的交換器連接埠,然後才能執行「kubeadm join」。如果您忘記在執行「kubeadm join」之前新增標記,新的節點將無法連線。在此情況下,您必須新增標記並重新啟動 NCP 才能解決此問題。
若要識別節點虛擬機器的交換器連接埠,您可以進行下列 API 呼叫:
在回應中,尋找節點虛擬機器,並擷取「external_id」屬性的值。或者,您可以進行下列 API 呼叫:
在您擁有外部識別碼後,您可以用它來擷取具有下列 API 的虛擬機器 VIF。請注意,在啟動虛擬機器之前,不會填入 VIF。
lport_attachment_id
屬性是節點虛擬機器的 VIF 識別碼。然後,您可以尋找此 VIF 的邏輯連接埠,並新增必要的標記。Kubernetes 網繭的 IP 區塊
導覽至
來建立一或多個 IP 區塊。以 CIDR 格式指定 IP 區塊。將 ncp.ini
的 [nsx_v3]
區段中的 container_ip_blocks
選項設定為 IP 區塊的 UUID。如果您要 NCP 自動建立 IP 區塊,可以使用採用 CIDR 格式、以逗點分隔的地址清單來設定 container_ip_blocks
選項。依預設,專案會共用
container_ip_blocks
中指定的 IP 區塊。您可以在 ncp.ini
的 [nsx_v3]
區段中設定 no_snat_ip_blocks
選項,來建立專用於非 SNAT 命名空間 (針對 Kubernetes) 或叢集 (針對 TAS) 的 IP 區塊。 如果您在 NCP 執行時建立無 SNAT IP 區塊,則必須重新啟動 NCP。否則,NCP 將會繼續使用共用的 IP 區塊,直到耗盡為止。
當您建立 IP 區塊時,首碼長度不得大於 NCP 之組態檔
ncp.ini
中的 subnet_prefix
選項的值。預設值為 24。如果 NCP 已開始從 IP 區塊分配 IP 位址,則不得修改該 IP 區塊。如果要使用其他區塊,請確保 NCP 未從該區塊分配任何位址。
外部 IP 集區
外部 IP 集區用來配置 IP 位址,從而用於使用 SNAT 規則轉譯網繭 IP,以及用於使用 SNAT/DNAT 規則公開入口控制站和 LoadBalancer 類型的服務,如同 Openstack 浮動 IP。這些 IP 位址也稱為「外部 IP」。
導覽至
來建立 IP 集區。將 ncp.ini
的 [nsx_v3]
區段中的 external_ip_pools
選項設定為 IP 集區的 UUID。如果您想要 NCP 自動建立 IP 集區,您可以使用採用 CIDR 格式或 IP 範圍、以逗點分隔的地址清單來設定 external_ip_pools
選項。多個 Kubernetes 叢集會使用相同的外部 IP 集區。每個 NCP 執行個體皆會針對其管理的 Kubernetes 叢集使用此集區的子網路。依預設,系統會使用網繭子網路的相同子網路首碼。如需使用不同的子網路大小,請更新
ncp.ini
之 [nsx_v3]
區段中的 external_subnet_prefix
選項。 您可以透過變更組態檔並重新啟動 NCP,變更為不同的 IP 集區。
如果 NCP 已開始從 IP 集區分配 IP 位址,則不得修改該 IP 集區。如果要使用其他集區,請確保 NCP 未從該集區分配任何位址。
共用的第 1 層拓撲
若要啟用共用的第 1 層拓撲,請執行下列組態:
- 將top_tier_router選項設定為第 1 層閘道的識別碼。將第 1 層閘道連線至第 0 層閘道以進行外部連線。
- 如果已啟用網繭的 SNAT 流量,請將 Kubernetes 節點區段的上行修改為在與top_tier_router中設定的相同第 0 層或第 1 層閘道。
- 將single_tier_topology選項設定為True。預設值是False。
- 如果想要 NCP 自動將頂層路由器設定為第 1 層閘道,請取消設定top_tier_router選項,並設定tier0_gateway選項。NCP 將建立第 1 層閘道,並將其上行連接至tier0_gateway選項中指定的第 0 層閘道。
注意:在您設定
top_tier_router
選項並建立一些命名空間後,無法將 top_tier_router
更新為其他值並重新啟動 NCP。不支援此作業。