有兩種方法可設定 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/node_name |
叢集名稱 | ncp/cluster |
kubectl get nodes
例如,如果您想要在 NCP 執行時延伸 Kubernetes 叢集,例如,將更多節點新增至叢集,您必須先將這些標記新增到對應的交換器連接埠,然後才能執行「kubeadm join」。如果您忘記在執行「kubeadm join」之前新增標記,新的節點將無法連線。在此情況下,您必須新增標記並重新啟動 NCP 才能解決此問題。
/api/v1/fabric/virtual-machines
/api/v1/search -G --data-urlencode "query=(resource_type:VirtualMachine AND display_name:<node_vm_name>)"
/api/v1/search -G --data-urlencode \ "query=(resource_type:VirtualNetworkInterface AND external_id:<node_vm_ext_id> AND \ _exists_:lport_attachment_id)"
lport_attachment_id 屬性是節點虛擬機器的 VIF 識別碼。然後,您可以尋找此 VIF 的邏輯連接埠,並新增必要的標記。
Kubernetes 網繭的 IP 區塊
導覽至ncp.ini 的 [nsx_v3] 區段中的 container_ip_blocks 選項設定為 IP 區塊的 UUID。如果您要 NCP 自動建立 IP 區塊,可以使用採用 CIDR 格式、以逗點分隔的地址清單來設定 container_ip_blocks 選項。
來建立一或多個 IP 區塊。以 CIDR 格式指定 IP 區塊。將依預設,專案會共用 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」。
導覽至ncp.ini 的 [nsx_v3] 區段中的 external_ip_pools 選項設定為 IP 集區的 UUID。如果您想要 NCP 自動建立 IP 集區,您可以使用採用 CIDR 格式或 IP 範圍、以逗點分隔的地址清單來設定 external_ip_pools 選項。
來建立 IP 集區。將多個 Kubernetes 叢集會使用相同的外部 IP 集區。每個 NCP 執行個體皆會針對其管理的 Kubernetes 叢集使用此集區的子網路。依預設,系統會使用網繭子網路的相同子網路首碼。如需使用不同的子網路大小,請更新 ncp.ini 之 [nsx_v3] 區段中的 external_subnet_prefix 選項。
您可以透過變更組態檔並重新啟動 NCP,變更為不同的 IP 集區。
如果 NCP 已開始從 IP 集區分配 IP 位址,則不得修改該 IP 集區。如果要使用其他集區,請確保 NCP 未從該集區分配任何位址。
共用的第 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。不支援此作業。