有兩種方法可設定 NCP 的特定網路資源。本節說明如何在管理程式模式中設定資源。
在 NCP 組態檔 ncp.ini 中,您可以使用 NSX 資源的 UUID 或名稱來指定。
邏輯路由器和邏輯交換器
- 建立 Kubernetes 節點的邏輯交換器,例如 LS1。
- 建立第 0 層邏輯路由器,例如 T0LR1。如果您沒有共用的第 1 層拓撲,請將 ncp.ini 的 [nsx_v3] 區段的 tier0_router 選項設定為邏輯路由器的識別碼。請參閱以下有關設定共用的第 1 層拓撲的資訊。如果您計劃在此邏輯路由器上設定 NAT 規則,請將 HA 模式設定為作用中/待命。否則,請將其設為作用中/作用中式。啟用路由重新分配。同時,請設定此路由器以存取外部網路。
- 建立第 1 層邏輯路由器,例如 T1LR1。將此邏輯路由器連線至第 0 層邏輯路由器。
- 設定 T1LR1 的路由器通告。至少應啟用 NSX 連線和 NAT 路由。
- 將 T1LR1 連線至 LS1。請確定邏輯路由器連接埠的 IP 位址不會與 Kubernetes 節點的 IP 位址衝突。
- 對於每個節點虛擬機器,請確定容器流量的 vNIC 已連結至自動建立的邏輯交換器。您可以在網路索引標籤中找到與邏輯交換器相同的名稱 (即 LS1)。
標籤 | 範圍 |
---|---|
節點名稱 | 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。
來建立一或多個 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 位址,從而用於使用 SNAT 規則轉譯網繭 IP,以及用於使用 SNAT/DNAT 規則公開入口控制站和 LoadBalancer 類型的服務,如同 Openstack 浮動 IP。這些 IP 位址也稱為「外部 IP」。
導覽至ncp.ini 的 [nsx_v3] 區段中的 external_ip_pools 選項設定為 IP 集區的 UUID。
來建立 IP 集區。將多個 Kubernetes 叢集會使用相同的外部 IP 集區。每個 NCP 執行個體皆會針對其管理的 Kubernetes 叢集使用此集區的子網路。依預設,系統會使用網繭子網路的相同子網路首碼。如需使用不同的子網路大小,請更新 ncp.ini 之 [nsx_v3] 區段中的 external_subnet_prefix 選項。
您可以透過變更組態檔並重新啟動 NCP,變更為不同的 IP 集區。
共用的第 1 層拓撲
- 將 top_tier_router 選項設定為第 0 層邏輯路由器或第 1 層邏輯路由器的識別碼。如果是第 1 層邏輯路由器,則需要將其連線至第 0 層邏輯路由器以進行外部連線。此選項會取代 tier0_router 選項。
- 如果已啟用網繭的 SNAT 流量,請將 T1LR1 與 LS1 (Kubernetes 節點的邏輯交換器) 中斷連線,然後將 top_tier_router 中的第 0 層或第 1 層路由器集連線至 LS1。
- 將 single_tier_topology 選項設定為 True。預設值是 False。
(選用) (僅限 Kubernetes) 防火牆標記區段
若要允許管理員建立防火牆規則同時不影響 NCP 根據網路原則建立的防火牆區段,請導覽至
,然後建立兩個防火牆區段。透過在 ncp.ini 的 [nsx_v3] 區段中設定 bottom_firewall_section_marker 和 top_firewall_section_marker 選項,指定標記防火牆區段。
底部防火牆區段必須位於頂部防火牆區段下方。建立這些防火牆區段之後,由 NCP 建立用於隔離的所有防火牆區段將建立於底部防火牆區段之上,而 NCP 建立用於原則的所有防火牆區段將建立於頂部防火牆區段之下。如果沒有建立這些標記區段,則所有隔離規則將會在底部建立,而所有原則區段將會在頂部建立。每個叢集的各個標記防火牆區段的值必須是唯一的,否則將導致錯誤。