Share via


在虛擬網路中建立 Azure Batch 集區

當您建立 Azure Batch 集區時,您可以在您指定的 Azure 虛擬網路 子網路中佈建集區。 本文會說明如何在虛擬網路中設定 Batch 集區。

為什麼要使用虛擬網路?

集區中的計算節點可彼此通訊以執行多執行個體工作,而不需要個別的虛擬網路。 但根據預設,集區中的節點無法與位於集區外部的任何虛擬機器 (VM) 通訊,例如授權或檔案伺服器。

若要讓計算節點與其他虛擬機器或內部部署網路安全地通訊,您可以在虛擬網路的子網路中佈建集區。

必要條件

  • 驗證。 若要使用 Azure 虛擬網路,Batch 用戶端 API 必須使用 Microsoft Entra 驗證。 若要深入了解,請參閱使用 Active Directory 驗證 Batch 服務解決方案

  • Azure 虛擬網路。 若要事先準備具有一個或多個子網路的虛擬網路,您可以使用 Azure 入口網站、Azure PowerShell、Microsoft Azure CLI 或其他方法。

    • 若要建立以 Azure Resource Manager 為基礎的虛擬網路,請參閱建立虛擬網路。 建議將以 Resource Manager 為基礎的虛擬網路用於新部署,而且只在使用虛擬機器組態的集區上提供支援。

    • 若要建立傳統虛擬網路,請參閱建立有多個子網路的虛擬網路 (傳統)。 只有使用雲端服務組態的集區支援傳統虛擬網路。

      重要

      請避免對 Azure Batch 集區 VNet 使用 172.17.0.0/16。 這是 Docker 橋接網路的預設值,而且可能會與您想要連線到 VNet 的其他網路衝突。 為 Azure Batch 集區建立虛擬網路需要仔細規劃您的網路基礎結構。

一般虛擬網路需求

  • 虛擬網路必須與您用來建立集區的 Batch 帳戶位於相同的訂用帳戶和區域中。

  • 針對集區指定的子網路必須有足夠的未指派 IP 位址,可容納目標設為集區的 VM 數目,也就是足以容納集區的 targetDedicatedNodestargetLowPriorityNodes 屬性。 如果子網路沒有足夠的未指派 IP 位址,集區會局部配置計算節點,並發生調整大小錯誤。

  • 如果您未使用簡易的計算節點通訊,則您必須使用任何為您虛擬網路提供服務的自訂 DNS 伺服器來解析 Azure 儲存體端點。 具體而言,<account>.table.core.windows.net<account>.queue.core.windows.net<account>.blob.core.windows.net 形式的 URL 應該可解析。

  • 您可以在相同的虛擬網路或相同的子網路中建立多個集區 (只要有足夠的位址空間即可)。 單一集區不能存在於多個虛擬網路或子網路中。

其他虛擬網路需求會根據 Batch 集區是否位於 VirtualMachineConfigurationCloudServiceConfiguration 而有所不同。 建議針對 Batch 集區使用 VirtualMachineConfiguration,因為 CloudServiceConfiguration 集區已被取代

重要

Batch 集區可以使用兩個節點通訊模式之一來設定。 傳統節點通訊模式是 Batch 服務起始與計算節點通訊的位置。 簡易節點通訊模式是計算節點起始與 Batch 服務通訊的位置。

  • 任何將用於 Batch 集區的虛擬網路或對等互連虛擬網路,都不應該與計算節點上的軟體定義網路或路由有重疊的 IP 位址範圍。 衝突的常見來源是使用容器執行階段,例如 Docker。 Docker 會使用定義的子網路範圍 172.17.0.0/16 來建立預設的網路橋接器。 在該預設 IP 位址空間中的虛擬網路內執行的任何服務,都會與計算節點上的服務發生衝突,例如透過 SSH 進行遠端存取。

虛擬機器設定中的集區

需求:

  • 支援的虛擬網路:僅限以 Azure Resource Manager 為基礎的虛擬網路。
  • 子網路識別碼:使用 Batch API 指定子網路時,請使用子網路的「資源識別碼」。 子網路識別碼的格式為:

/subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/virtualNetworks/{network}/subnets/{subnet}

  • 權限:檢查您對虛擬網路訂用帳戶或資源群組的安全性原則或鎖定是否限制了使用者管理虛擬網路的權限。
  • 網路資源:Batch 會在包含虛擬網路的資源群組中自動建立更多網路資源。

重要

對於每 100 個專用或低優先順序的節點,Batch 將會建立一個網路安全性群組 (NSG)、一個公用 IP 位址,和一個負載平衡器。 這些資源會被訂用帳戶的資源配額所限制。 對於大型集區,建議您要求增加其中一或多項資源的配額。

適用於虛擬機器設定集區的網路安全性群組:Batch 預設值

Batch 會在 Batch 集區內,每個虛擬機器擴展集部署的網路介面層級建立網路安全性群組 (NSG)。 如果集區在 simplified 計算節點通訊底下沒有公用 IP 位址,就不會建立 NSG。

為了在計算節點與 Batch 服務之間提供必要的通訊,這些 NSG 的設定如下:

  • 連接埠 29876 和 29877 上來自 Batch 服務 IP 位址的輸入 TCP 流量,其對應至 BatchNodeManagement.region 服務標籤。 此規則只會在 classic 集區通訊模式中建立。
  • 連接埠 22 (Linux 節點) 或連接埠 3389 (Windows 節點) 上的輸入 TCP 流量,以分別允許預設連接埠上 SSH 或 RDP 的遠端存取。 針對 Linux 上特定類型的多執行個體工作 (例如 MPI),您可能需要針對包含 Batch 計算節點之子網路中的 IP 允許 SSH 流量。 特定 MPI 執行階段可能需要透過 SSH 啟動,這通常會在私人 IP 位址空間上路由。 子網路層級 NSG 規則可能會封鎖此流量。
  • 將連接埠 443 上的所有流量輸出到 Batch 服務 IP 位址,其對應至 BatchNodeManagement.region 服務標籤。
  • 任何連接埠上傳至虛擬網路的輸出流量。 此規則可能會根據子網路層級 NSG 規則進行修改。
  • 任何連接埠上傳至網際網路的輸出流量。 此規則可能會根據子網路層級 NSG 規則進行修改。

重要

如果您要在 Batch 設定的 NSG 中修改或新增輸入或輸出規則,請謹慎操作。 如果 NSG 拒絕對所指定子網路中計算節點的通訊,則 Batch 服務會將計算節點的狀態設為 [無法使用]。 此外,不應將資源鎖定套用至 Batch 所建立的任何資源,因為可能會由於使用者起始的動作 (例如刪除集區) 而無法清除資源。

適用於虛擬機器設定集區的網路安全性群組:指定子網路層級規則

如果您的 NSG 與適用於 Batch 計算節點的子網路相關聯,您至少必須使用下列表格中所示的輸入和輸出安全性規則來設定此 NSG。

警告

Batch 服務 IP 位址可能會隨著時間變更。 因此,您應該針對下列表格中所述的 NSG 規則使用 BatchNodeManagement.region 服務標籤。 請避免使用特定的 Batch 服務 IP 位址填入 NSG 規則。

輸入安全性規則

來源服務標籤或 IP 位址 目的地連接埠 通訊協定 集區通訊模式 必要
BatchNodeManagement.region服務標籤 29876-29877 TCP 傳統 Yes
適用於遠端存取計算節點的來源 IP 位址 3389 (Windows)、22 (Linux) TCP 傳統或簡易 No

只有在需要允許從預設 RDP 和 SSH 連接埠上的外部來源遠端存取計算節點時,才必須分別設定連接埠 3389 (Windows) 或 22 (Linux) 上的輸入流量。 在包含 Batch 計算節點的子網路中,如果您需要支援具有特定訊息傳遞介面 (MPI) 執行階段的多執行個體工作,您可能需要允許 Linux 上的 SSH 流量,因為子網路層級 NSG 規則可能會封鎖流量。 MPI 流量通常是透過私人 IP 位址空間傳遞,但可能會因為 MPI 執行階段與執行階段設定而有所不同。 對於可使用的集區計算節點,不會嚴格要求要允許這些連接埠上的流量。 您也可以透過設定集區端點,在這些連接埠上停用預設遠端存取。

輸出安全性規則

目的地服務標記 目的地連接埠 通訊協定 集區通訊模式 必要
BatchNodeManagement.region服務標籤 443 * 簡體 Yes
Storage.region服務標籤 443 TCP 傳統 Yes

如果您使用工作管理員工作,或者您的工作必須往回與 Batch 服務通訊,則必須在 classic 集區通訊模式中輸出至 BatchNodeManagement.region 服務標籤。 為了在 simplified 集區通訊模式中輸出至 BatchNodeManagement.region,Batch 服務目前只會使用 TCP 通訊協定,但基於未來相容性可能需要 UDP。 如果沒有公用 IP 位址的集區會使用 simplified 通訊模式且具備節點管理私人端點,則不需 NSG。 如需 BatchNodeManagement.region 服務標籤之輸出安全性規則的詳細資訊,請參閱使用簡易計算節點通訊

雲端服務設定中的集區

警告

雲端服務設定集區已經淘汰。 請改用虛擬機器設定集區。

需求:

  • 支援的虛擬網路:僅限傳統虛擬網路。

  • 子網路識別碼:使用 Batch API 指定子網路時,請使用子網路的「資源識別碼」。 子網路識別碼的格式為:

    /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.ClassicNetwork/virtualNetworks/{network}/subnets/{subnet}

  • 權限:Microsoft Azure Batch 服務主體必須具有指定虛擬網路的 Classic Virtual Machine Contributor Azure 角色。

適用於雲端服務設定集區的網路安全性群組

子網路必須允許來自 Batch 服務的輸入通訊,才能在計算節點上排程工作,且必須允許輸出通訊,才能與 Azure 儲存體或其他資源進行通訊。

您不需要指定 NSG,因為 Batch 只會設定從 Batch IP 位址到集區節點的輸入通訊。 不過,如果指定的子網路有相關聯的 NSG 和 (或) 防火牆,請設定輸入和輸出安全性規則,如下列表格所示。 如果 NSG 拒絕對所指定子網路中計算節點的通訊,則 Batch 服務會將計算節點的狀態設為 [無法使用]

在需要允許對集區節點的 RDP 存取時,才必須設定連接埠 3389 (Windows) 上的輸入流量。 集區節點不需要此規則即可使用。

來源 IP 位址 來源連接埠 Destination 目的地連接埠 通訊協定 動作
任意

雖然此規則實際上需要「全部允許」,但 Batch 服務會在每個節點的層級上套用 ACL 規則,以篩選掉所有非 Batch 服務的 IP 位址。
* 任意 10100、20100、30100 TCP 允許
選用,允許計算節點的 RDP 存取。 * 任意 3389 TCP 允許

輸出安全性規則

來源 來源連接埠 Destination 目的地連接埠 通訊協定 動作
任意 * 任意 443 任意 允許

在 Azure 入口網站中使用虛擬網路建立集區

建立虛擬網路並為其指派子網路之後,您就可以使用該虛擬網路建立 Batch 集區。 請遵循下列步驟,從 Azure 入口網站建立集區:

  1. 在 Azure 入口網站頂端的搜尋列中搜尋並選取 Batch 帳戶。 選取您的 Batch 帳戶。 此帳戶必須位於與您要使用之虛擬網路所在的資源群組相同的訂用帳戶和區域中。

  2. 從左側導覽中選取 [集區]

  3. 在 [集區] 視窗上,選取 [新增]

    Screenshot of the Pools page in a Batch account that highlights the Pools option in the left side navigation and add button on the Pools page.

  4. 在 [新增集區] 頁面上,選取選項並輸入集區的資訊。 如需為 Batch 帳戶建立集區的詳細資訊,請參閱建立計算節點集區。 [節點大小]、[目標專用節點] 和 [目標現成/低優先順序節點],以及所需的任何選擇性設定。

  5. 在 [虛擬網路] 中,選取您想要使用的虛擬網路和子網路。

  6. 選取 [確定] 以建立您的集區。

重要

如果您嘗試刪除集區正在使用的子網路,您會收到錯誤訊息。 刪除該子網路之前,必須先刪除所有使用該子網路的集區。

強制通道的使用者定義路由

您的組織可能需要從子網路將網際網路繫結流量重新導向 (強制) 回到內部部署位置,以便進行檢查和記錄。 此外,您可能已為虛擬網路中的子網路啟用強制通道。

若要確保集區中的節點可在已啟用強制通道的虛擬網路中運作,您必須為該子網路新增下列使用者定義的路由 (UDR)。

針對傳統通訊模式集區:

  • Batch 服務需要與節點通訊,以便安排工作。 若要啟用此通訊,在您 Batch 帳戶所在的區域中,新增對應至 BatchNodeManagement.region服務標籤的 UDR。 將 [下一個躍點類型] 設定為 [網際網路]

  • 請確保您的內部部署網路並未在目的地連接埠 443 上封鎖輸出到 Azure 儲存體的 TCP 流量 (具體而言,是 *.table.core.windows.net*.queue.core.windows.net*.blob.core.windows.net 格式的 URL)。

如果簡易通訊模式集區不使用節點管理私人端點:

  • 請確保您的內部部署網路並未在目的地連接埠 443 上封鎖輸出到 Azure Batch BatchNodeManagement.region 服務標籤的 TCP/UDP 流量。 目前只會使用 TCP 通訊協定,但基於未來相容性可能需要 UDP。

針對所有集區:

  • 如果您使用虛擬檔案掛接,請檢閱網路需求,並確保沒有封鎖必要的流量。

警告

Batch 服務 IP 位址可能會隨著時間變更。 若要防止因 Batch 服務 IP 位址變更而中斷,請勿直接指定 IP 位址。 改為使用 BatchNodeManagement.region服務標籤

下一步