共用方式為


Azure Stack Edge Pro GPU 裝置上的 Kube 網路

適用於:Yes for Pro GPU SKUAzure Stack Edge Pro - GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for Mini R SKUAzure 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 複本的流量都應有負載平衡。

Kubernetes networking requirements

上述案例會產生下列網路需求:

  • 對外應用程式需要透過名稱或 IP 位址,由 Kube 叢集外部的應用程式使用者存取。
  • 以 Kube 叢集中的應用程式為例,此處的前端和後端 Pod 必須能夠彼此通訊。

為了滿足上述兩個需求,我們導入了 Kube 服務。

網路服務

Kube 服務有兩種:

  • 叢集 IP 服務:請將此服務視為替應用程式 Pod 提供固定端點。 任何與這些服務相關聯的 Pod 皆無法從 Kube 叢集外部存取。 與這些服務搭配使用的 IP 位址來自私人網路中的位址空間。

    若您公開 Kube 叢集中的 Pod 是為了當作其他 Pod 的存取途徑,而非外部公開的負載平衡器服務,請參閱如何將 Kube 服務公開為叢集 IP 服務以供內部通訊

  • 負載平衡器 IP:類似叢集 IP 服務,但相關聯的 IP 來自外部網路,而且可以從 Kube 叢集外部存取。

Kube 網路設定

用於 Kube 節點和外部服務的 IP 位址是透過裝置本機 UI 中的 [計算] 頁面所提供的。

Kubernetes IP assignment in local 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 上的路由。 請考慮下圖的配置。

Azure Stack Edge networking diagram

  • 連線至網際網路的連接埠 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 網路,請參閱: