Azure Stack Edge Pro GPU 裝置上的 Kube 網路
適用於: Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
您設定計算角色時,Azure Stack Edge Pro GPU 裝置上會建立 Kube 叢集。 一旦建立了 Kube 叢集,就可以在 Pod 的 Kube 叢集中部署容器化應用程式。 在 Kube 叢集中,Pod 有多種不同網路使用方式。
本文大致介紹 Kube 叢集中的網路功能,尤其是與 Azure Stack Edge Pro GPU 裝置相關的情境。
網路需求
以下範例是部署至 Kube 叢集的典型雙層式應用程式。
- 這個應用程式具備網頁伺服器前端,後端則為資料庫應用程式。
- 每個 Pod 都會獲派一組 IP,但這些 IP 可以在 Pod 重新開機和容錯移轉時變更。
- 每個應用程式皆由多個 Pod 所組成,且所有 Pod 複本的流量都應有負載平衡。
上述案例會產生下列網路需求:
- 對外應用程式需要透過名稱或 IP 位址,由 Kube 叢集外部的應用程式使用者存取。
- 以 Kube 叢集中的應用程式為例,此處的前端和後端 Pod 必須能夠彼此通訊。
為了滿足上述兩個需求,我們導入了 Kube 服務。
網路服務
Kube 服務有兩種:
叢集 IP 服務:請將此服務視為替應用程式 Pod 提供固定端點。 任何與這些服務相關聯的 Pod 皆無法從 Kube 叢集外部存取。 與這些服務搭配使用的 IP 位址來自私人網路中的位址空間。
若您公開 Kube 叢集中的 Pod 是為了當作其他 Pod 的存取途徑,而非外部公開的負載平衡器服務,請參閱如何將 Kube 服務公開為叢集 IP 服務以供內部通訊。
負載平衡器 IP:類似叢集 IP 服務,但相關聯的 IP 來自外部網路,而且可以從 Kube 叢集外部存取。
Kube 網路設定
用於 Kube 節點和外部服務的 IP 位址是透過裝置本機 UI 中的 [計算] 頁面所提供的。
IP 指派用於:
- Kube 節點 IP:此 IP 範圍用於 Kube 主機和背景工作節點。 Kube 節點彼此通訊時會使用這些 IP。
- Kube 外部服務 IP:此 IP 範圍用於在 Kube 叢集外公開的外部服務 (也稱為 Load Balancer 服務)。
Kube 網路元件
Calico、Metallb 與核心 DNS 都是為了支援網路功能而安裝在 Azure Stack Edge Pro GPU 上的元件。
- Calico 會為每個 Pod 指派一個私人 IP 範圍中的 IP 位址,並為其設定網路功能,讓節點上的 Pod 可以彼此通訊。
- Metallb 會在叢集內 Pod 上執行,並將 IP 位址指派給
load balancer
類型服務。 負載平衡器 IP 位址選自本機 UI 所提供的服務 IP 範圍。 - 核心 DNS 附加元件會設定將服務名稱對應至叢集 IP 位址的 DNS 記錄。
您連線至裝置的 PowerShell 介面後,可以看到上述網路元件在 Kube 叢集上執行。
網路介面、交換器
您的裝置可作為構成基礎結構叢集的單一節點組態。 Kube 叢集與基礎結構叢集分開,且部署在基礎結構叢集之上。 Kube 叢集擁有一個主要節點和一個背景工作節點, 這兩個 Kube 節點都是執行應用程式和雲端工作流程的虛擬機器。
主要和背景工作 VM 各有兩個網路介面,一個連線至內部虛擬交換器,另一個則連線至外部虛擬交換器。
外部虛擬交換器:透過本機 UI 中的 [計算] 頁面啟用裝置連接埠進行計算時,便會建立此交換器。 這是用於計算基礎結構的交換器,舉例來說,此交換器會用於您在裝置上部署的虛擬機器。
內部虛擬交換器:此交換器為裝置原廠預設設定的一部分。 內部虛擬交換器會透過以預設閘道設定的連接埠,使用網路位址轉譯 (NAT) 路由傳送流量。 舉例來說,此交換器會將所有 IoT 執行階段要求從 VM 路由傳送至 Azure 入口網站。
網路路由
針對您裝置上的 Kube VM,您可以藉由新增路由設定以路由傳送流量。 路由設定是包含下列欄位的路由表項目:
參數 | 描述 |
---|---|
Destination | IP 位址或 IP 位址前置碼。 |
前置長度 | 對應至目的地位址或位址範圍的前置長度。 |
下一個躍點 | 封包轉送的目標 IP 位址。 |
介面 | 轉送 IP 封包的網路介面。 |
計量 | 路由計量會決定用於連線至目的地的慣用網路介面。 |
變更計算網路上的路由
使用 Add-HcsNetRoute
Cmdlet 修改 Kube 背景工作和主要 VM 上的路由。 請考慮下圖的配置。
- 連線至網際網路的連接埠 2 是輸出流量的所需路徑。
- 您已在連接埠 3 上啟用計算程序,因此網路介面上已建立外部虛擬交換器。
- 連接埠 3 會連線至私人網路,其中的相機和感應器會將原始資料饋送至 Azure Stack Edge 裝置進行處理。
如果您在私人網路的環境中設定了閘道,請考慮為 Kube 主要和背景工作 VM 設定自訂路由,以確保 VM 只能針對相關流量與閘道通訊。 這種做法可讓您掌握在計算網路上流動的流量,而非您可能已在 Azure Stack Edge 裝置上設定的其他連接埠。 舉例來說,您可能希望所有其他網際網路對應流量流向裝置上其他實體連接埠, 這時便可讓網際網路對應流量通往連接埠 2。
此外,請將下列事項列入考量:
- 如果您有一般子網路,便不需要將這些路由新增至私人網路。 您可以在私人網路上有多個子網路時 (視情況) 新增這些路由。
- 您只能將這些路由新增至 Kube 主要和背景工作 VM,不能新增至裝置 (Windows 主機)。
- 新增此路由之前,不需先設定 Kube 計算程序, 但您還是可以在設定 Kube 計算程序之後新增或更新路由。
- 您只能透過裝置的 PowerShell 介面新增路由設定,不能透過本機 UI 新增。
- 請確定您要使用的網路介面具備靜態設定。
新增路由設定
若要將自訂路由新增至私人網路,請按以下範例使用 Cmdlet:
Add-HcsNetRoute -InterfaceAlias <Port number> -DestinationPrefix <Destination IP address or IP address prefix> -NextHop <IP address of next hop> -RouteMetric <Route metric number>
以下為範例輸出。
Add-HcsNetRoute -InterfaceAlias "Port3" -DestinationPrefix "192.168.20.0/24" -NextHop "192.168.20.1" -RouteMetric 100
上述命令會在定義目的地子網路 192.168.20.0/24 的路由表中建立一個項目,將下一個躍點指定為 192.168.20.1,並將此路由項目指派為 100 的路由計量。 路由計量越低,指派給路由的優先順序越高。
檢查路由設定
請使用此 Cmdlet 檢查您在裝置上新增的所有自訂路由設定。 這些路由不包含裝置上已存在的所有系統路由或預設路由。
Get-HcsNetRoute -InterfaceAlias <Port number>
移除路由設定
請使用此 Cmdlet 移除您在裝置上新增的所有自訂路由設定。
Remove-HcsNetRoute -InterfaceAlias <Port number> -DestinationPrefix <Destination IP or IP prefix>
具有多個網路介面的路由
如果已連結多個裝置連接埠,則不支援使用 NIC Teaming 或交換器內嵌小組 (SET) 在 Hyper-V 環境中將數張實體網路介面卡組成單一虛擬網路介面卡。
下一步
若要在 Azure Stack Edge Pro GPU 上設定 Kube 網路,請參閱: