Azure 批次池包含一個或多個運算節點,執行使用者指定的批次任務工作負載。 為了啟用批次功能及批次池基礎設施管理,運算節點必須與 Azure 批次服務通訊。
批次支援兩種通訊模式:
- 經典:批次服務會與計算節點發起通訊。
- 簡化說明:計算節點主動與批次服務進行通訊。
本文說明 簡化 的通訊模式及其相關的網路配置需求。
警告
經典的計算節點通訊模式將於 2026 年 3 月 31 日退役,並以本文件中描述的簡化通訊模式取代。
Important
在設定簡化模式前,請了解兩個獨立設定:
- 池公共 IP 位址 控制運算節點本身的網路(虛擬機是否有公共 IP 用於外撥網際網路存取)。
-
帳號公共網路存取
publicNetworkAccess()控制批次服務端點(包括節點管理端點)是否接受來自公共網際網路的連線。
這些設定是獨立的。 一個集區的運算節點上可以有公用 IP,而 Batch 帳戶則是停用公用網路存取。 在簡化模式下,運算節點會發起對批次 節點管理端點的外站連線。 如果批次帳號被 publicNetworkAccess 設定為 Disabled,節點管理端點會拒絕公開連線——即使池中有公開 IP,且 NSG 允許外出流量。 此時, 您必須 建立一個 nodeManagement 私有端點 ,讓運算節點能透過私有連線存取節點管理服務。
小提示
如果你的池沒有使用 公有 IP 位址 ,且有 nodeManagement 私有端點,且沒有網際網路外出存取,文件中描述的 NSG 和防火牆規則就不適用於你的設定。
支援的區域
Azure Batch 中的簡化運算節點通訊目前可用於以下區域:
- 公共區:除西印度外,Batch 在場的所有公共區域。
- 政府單位:USGov亞利桑那、USGov維吉尼亞、USGov德州。
- 中國:除中國北方一區和東北區外,所有有 Batch 存在的中國地區。
經典模式與簡化模式的差異
簡化的計算節點通訊模式可最佳化並簡化系統代表使用者管理 Batch 集區基礎架構的方式。 此通訊模式降低了基線作業中進出網路連線的複雜度與範圍。
使用 經典 通訊模式的批次池在 建立虛擬網路池時,需要在網路安全群組(NSG)、使用者定義路由(UDR)及防火牆中遵守以下網路規則:
輸入:
- 目的地連接埠
29876,29877透過 TCP 從BatchNodeManagement.<region>
- 目的地連接埠
出發:
- TCP 上的目的埠
443至Storage.<region> - 對於某些需要回傳通訊至 Batch 服務的工作負載 (例如 Job Manager 工作),需透過 TCP 連線至
443目的地連接埠BatchNodeManagement.<region>。
- TCP 上的目的埠
採用簡化通訊模式的 Batch 集區僅需具備對 Batch 帳戶節點管理端點的輸出存取權 (請參閱 Batch 帳戶的公用端點)。 當批次帳號設定為publicNetworkAccess啟用(預設)時,NSG、UDR 和防火牆中需要以下網路規則:
輸入:
- None
出發:
- 目的地連接埠
443經由任意轉為BatchNodeManagement.<region>
- 目的地連接埠
當 Batch 帳戶將publicNetworkAccess設定為已停用時,只有前一條到BatchNodeManagement.<region>的輸出規則是不夠的 — 節點管理端點會拒絕公用連線。 在這種情況下,你必須:
- 在池的虛擬網路中建立一個 nodeManagement 私有端點 。
- 設定 DNS 讓節點管理端點解析到私有端點的 IP 位址。
- 確保網路路徑 (NSG、UDR) 允許 TCP/443 從集區子網到私有端點子網。
欲了解更多資訊,請參閱 「使用批次帳號的私有端點」。
Important
如果帳號公共網路存取被停用且未設定 nodeManagement 私有端點,簡化通訊模式下的運算節點無法連接到節點管理服務—— 即使池有公共 IP,且 NSG 允許出站流量至 BatchNodeManagement.<region>。 這會導致節點進入 無法使用的 狀態。 要解決,建立 nodeManagement 私有端點並驗證 DNS 解析。 詳情請參見 故障排除部分。
批次帳戶的外站需求可透過 「List Outbound Network Dependencies Endpoints API」發現。 此 API 會根據批次帳戶池的通訊模式回報基礎相依關係集合。 使用者專屬的工作負載可能需要額外規則,例如開放流量給其他 Azure 資源(例如 Azure Storage for Application Packages、Azure 容器登錄檔)或端點,例如 Microsoft 套件倉庫來實現虛擬檔案系統掛載功能。
簡化模式的優點
使用 Azure Batch 的簡化模式使用者,能從網路連線與規則的簡化中受益。 簡化的運算節點通訊有助於降低安全風險,因為不需要為來自網際網路的入站通訊開啟埠口。 基礎運作僅需要一條指向已知服務標籤的輸出規則即可。
簡化模式也提供比傳統通訊模式更細緻的資料外洩控制,因為不再需要對外通訊Storage.<region>。 如工作流程有需要,您可以明確限制對 Azure Storage 的輸出通訊。 例如,你可以將外送通訊規則範圍設定到 Azure 儲存裝置,以啟用 AppPackage 儲存帳號或其他儲存帳號來存放資源檔案或輸出檔案。
即使你的工作負載目前沒有受到這些變更的影響(如下節所述),建議切換到簡化模式。 批次服務未來的改進可能只能透過簡化的計算節點通訊來實現功能。
經典與簡化溝通模式之間的潛在影響
在許多情況下,簡化的通訊模式並不會直接影響你的批次工作負載。 然而,簡化的計算節點通訊會影響以下情況:
- 在建立批次池時指定虛擬網路,並執行以下一項或多項操作的使用者:
- 明確禁用與簡化計算節點通訊不相容的出站網路流量規則。
- 使用與簡化計算節點通訊不相容的 UDR 與防火牆規則。
- 使用者在計算節點啟用軟體防火牆,並在與簡化運算節點通訊不相容的軟體防火牆規則中明確停用外出流量。
如果上述任一情況適用於你,請依照下一節的步驟操作,確保你的批次工作負載仍能以簡化模式運作。 強烈建議你先在開發和測試環境中測試並驗證所有變更,再推送到生產環境。
簡化模式所需的網路設定變更
遷移到新通訊模式需要以下步驟:
- 檢查你批次帳號的公開網路存取設定。 若
publicNetworkAccess設定為 Disabled,您必須在池的虛擬網路中建立 nodeManagement 私有端點 並設定 DNS,才能繼續進行。 若無此功能,簡化模式下的運算節點無論 NSG 規則如何都無法連接批次服務。 詳情請參閱「使用私有端點與 Azure Batch 帳戶」。 - 確保適用於批次池(NSG、UDR、防火牆等)的網路配置包含模式的聯集,也就是經典模式與簡化模式的合併網路規則。 至少這些規則如下:
- 進站:
- 目的地連接埠
29876,29877透過 TCP 從BatchNodeManagement.<region>
- 目的地連接埠
- 出發:
- TCP 上的目的埠
443至Storage.<region> - 目的地連接埠
443經由任意轉為BatchNodeManagement.<region>
- TCP 上的目的埠
- 進站:
- 如果你的工作流程還需要其他入站或出站情境,你必須確保規則反映這些要求。
- 請使用以下選項之一來更新你的工作負載,以使用新的通訊模式。
- 建立新的池,將
targetNodeCommunicationMode設定為 簡化 並驗證新池是否正常運作。 將你的工作負載遷移到新的池,並刪除之前的池。 - 將現有池
targetNodeCommunicationMode的屬性更新為 簡化版 ,然後將所有現有池的節點縮小為零,然後再擴展回去。
- 建立新的池,將
- 請使用 Get Pool API、List Pool API 或 Azure 入口網站來確認
currentNodeCommunicationMode是否已設為所需的簡化通訊模式。 - 至少修改所有適用的網路配置,以簡化通訊規則為基礎(注意上述所討論的額外規則):
- 進站:
- None
- 出發:
- 目的地連接埠
443經由任意轉為BatchNodeManagement.<region>
- 目的地連接埠
- 進站:
如果你遵循這些步驟,但之後想切回 傳統 的運算節點通訊,你需要採取以下步驟:
- 還原任何僅以 簡化 計算節點通訊模式運作的網路配置。
- 建立新的池池或更新現有池的
targetNodeCommunicationMode屬性,設定為 經典版。 - 將你的工作負載遷移到這些池,或是調整現有池大小並重新擴展(見上文第三步)。
- 請參考上方步驟 4 確認你的池是否以 經典 通訊模式運作。
- 可以選擇還原你的網路設定。
在批次池中指定通訊模式
批次池的 targetNodeCommunicationMode 屬性允許你指定批次服務中,批次服務與運算節點之間要使用哪種通訊模式。 以下是本物業允許的選項:
- 經典版:利用經典運算節點通訊建立池。
- 簡化:使用簡化的計算節點通訊建立池。
- 預設:允許批次服務選擇適當的運算節點通訊模式。 對於沒有虛擬網路的池,池可以以經典模式或簡化模式建立。 對於有虛擬網路的集區,集區總是預設為經典,直到 2024 年 9 月 30 日。 欲了解更多資訊,請參閱經典計算節點通訊模式 遷移指南。
小提示
指定目標節點通訊模式表示偏好批次服務,但不保證會被尊重。 池上的某些設定可能會阻止批次服務尊重指定的目標節點通訊模式,例如無公共 IP 位址的互動、虛擬網路及池組態類型。
以下是如何建立簡化計算節點通訊的批次池範例。
Azure 入口網站
首先,登入 Azure 入口網站。 接著,進入你批次帳號的 資源池 頁面,點選 新增 按鈕。 在可選設定中,您可以從節點通訊模式的下拉選單中選擇簡化,如圖所示:
要將現有的資源池更新為簡化的通訊模式,請前往您的批次帳號的「池」面板,然後選擇要更新的資源池。 在左側導航中,選擇 節點通訊模式。 在那裡你可以選擇如下所示的新目標節點通訊模式。 選擇適當的通訊模式後,選擇 儲存 按鈕進行更新。 首先,您需要將資源集區縮減到零節點,然後再恢復原狀,這樣在條件允許的情況下,變更才會生效。
若要顯示集區目前的節點通訊模式,請前往 Batch 帳戶的集區頁面,然後選取要檢視的集區。 在左側導覽中選擇 屬性 ,池節點的通訊模式會出現在 「一般 」區塊。
REST API
此範例展示了如何利用 批次服務 REST API 建立一個簡化計算節點通訊的池。
POST {batchURL}/pools?api-version=2022-10-01.16.0
client-request-id: 00000000-0000-0000-0000-000000000000
請求主體
"pool": {
"id": "pool-simplified",
"vmSize": "standard_d2s_v3",
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "Canonical",
"offer": "0001-com-ubuntu-server-jammy",
"sku": "22_04-lts"
},
"nodeAgentSKUId": "batch.node.ubuntu 22.04"
},
"resizeTimeout": "PT15M",
"targetDedicatedNodes": 2,
"targetLowPriorityNodes": 0,
"taskSlotsPerNode": 1,
"taskSchedulingPolicy": {
"nodeFillType": "spread"
},
"enableAutoScale": false,
"enableInterNodeCommunication": false,
"targetNodeCommunicationMode": "simplified"
}
局限性
以下是簡化通訊模式已知的限制:
- 對 先前建立且無公開 IP 位址的池的遷移支援有限。 這些池只有在 虛擬網路中建立才能遷移,否則即使池中有指定,也不會使用簡化的運算節點通訊。
- 雲端服務配置池不支援簡化的運算節點通訊,且 已被棄用。 為這類集區指定通訊模式不會被遵守,總是會出現經典通訊模式。 我們建議使用 Virtual Machine Configuration 來管理批次池。
後續步驟
- 瞭解如何 搭配 Batch 帳戶使用私人端點。
- 了解更多關於虛擬網路中的集區。
- 學習如何 建立包含指定公共 IP 位址的池。
- 學習如何 建立沒有公共 IP 位址的池。
- 學習如何 設定批次帳號的公開網路存取。