Share via


建立不包含 IP 位址的簡化節點通訊集區

注意

這會取代先前沒有公用IP位址的 Azure Batch 集區預覽版本。 這個新版本需要使用簡化計算節點通訊

重要

Azure Batch 中沒有公用 IP 位址的集區目前在選定區域中提供支援。

當您建立 Azure Batch 集區時,您可以佈建虛擬機器 (VM) 設定集區,而不需要公用 IP 位址。 本文說明如何設定不含公用IP位址的 Batch 集區。

為何不使用公用IP位址的集區?

根據預設,均會向 Azure Batch VM 設定集區的所有計算節點指派公用 IP 位址。 Batch 服務會使用此位址來支援因特網的輸出存取,以及從因特網對計算節點的輸入存取。

若要限制存取這些節點,並減少在網際網路上發現這些節點的機會,您可以佈建不使用公用 IP 位址的集區。

必要條件

重要

必要條件已從此功能的舊版預覽版本變更。 在繼續之前,請務必檢閱每個專案是否有變更。

  • 使用簡化的計算節點通訊。 如需詳細資訊,請參閱 使用簡化的計算節點通訊

  • Batch 用戶端 API 必須使用 Microsoft Entra 驗證。 Microsoft Entra ID 的 Azure Batch 支援記載於 使用 Active Directory 驗證 Batch 服務解決方案中。

  • 在 Azure 虛擬網路 (VNet) 中建立您的集區,請遵循這些需求和設定。 若要事先準備具有一或多個子網的 VNet,您可以使用 Azure 入口網站、Azure PowerShell、Azure 命令列介面 (Azure CLI) 或其他方法。

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

    • 針對集區指定的子網必須有足夠的未指派 IP 位址,以容納集區的目標 VM 數目:也就是集區之 targetDedicatedNodes 和 屬性的總和 targetLowPriorityNodes 。 如果子網沒有足夠的未指派IP位址,集區會部分配置計算節點,併發生重設大小錯誤。

    • 如果您打算使用私人端點,且虛擬網路已啟用 私人端點網路原則 ,請確定必須允許從 Batch 集區子網對裝載私人端點的子網進行 TCP/443 的輸入連線。

  • 啟用 Batch 節點管理的輸出存取。 沒有公用IP位址的集區預設不會啟用因特網輸出存取。 選擇下列其中一個選項,以允許計算節點存取 Batch 節點管理服務(請參閱 使用簡化的計算節點通訊):

    • 使用 nodeManagement 私人端點 搭配 Batch 帳戶,提供從虛擬網路存取 Batch 節點管理服務的私人存取權。 此解決方案是慣用的方法。

    • 或者,提供您自己的因特網輸出存取支援(請參閱 因特網的輸出存取)。

重要

具有 Batch 帳戶的私人端點有兩個子資源。 請針對沒有公用IP位址的 Batch 集區使用 nodeManagement 私人端點。 如需詳細資訊,請參閱 搭配 Azure Batch 帳戶使用私人端點。

目前的限制

  1. 沒有公用IP位址的集區必須使用虛擬機設定,而不是 雲端服務組態。
  2. Batch 計算節點的自定義端點 設定不適用於沒有公用IP位址的集區。
  3. 因為沒有公用IP位址,因此您無法 使用自己的指定公用IP位址 搭配這種類型的集區。
  4. 不支援 Batch 工作的工作驗證令牌。 因應措施是搭配受控識別使用 Batch 集區

在 Azure 入口網站 中建立不含公用IP位址的集區

  1. 如有需要,請在虛擬網路中為您的 Batch 帳戶建立 nodeManagement 私人端點(請參閱必要條件中的輸出存取需求)。
  2. 流覽至 Azure 入口網站 中的 Batch 帳戶。
  3. 左側的 [設定] 視窗中,選取 [集區]。
  4. 在 [集區] 視窗中,選取 [新增]
  5. 在 [ 新增集區] 視窗中,從 [映射類型 ] 下拉式清單中選取您想要使用的選項。
  6. 選取映像的正確 發行者/供應專案/Sku
  7. 指定其餘必要設定,包括 [節點大小]、 [目標專用節點] 和 [目標現成/低優先順序] 節點
  8. 針對 [節點通訊模式],選取 [選擇性 設定] 底下的 [簡化]。
  9. 選取您想要使用的虛擬網路和子網。 此虛擬網路必須與您要建立的集區位於相同的位置。
  10. [IP 位址布建類型] 中,選取 [NoPublicIPAddresses]。

下列螢幕快照顯示需要修改的專案,才能建立沒有公用IP位址的集區。

Screenshot of the Add pool screen with NoPublicIPAddresses selected.

使用 Batch REST API 建立沒有公用 IP 位址的集區

下列範例示範如何使用 Batch 服務 REST API 來建立使用公用 IP 位址的集區。

REST API URI

POST {batchURL}/pools?api-version=2022-10-01.16.0
client-request-id: 00000000-0000-0000-0000-000000000000

要求本文

"pool": {
     "id": "pool-npip",
     "vmSize": "standard_d2s_v3",
     "virtualMachineConfiguration": {
          "imageReference": {
               "publisher": "Canonical",
               "offer": "0001-com-ubuntu-server-jammy",
               "sku": "22_04-lts"
          },
          "nodeAgentSKUId": "batch.node.ubuntu 22.04"
     },
     "networkConfiguration": {
          "subnetId": "/subscriptions/<your_subscription_id>/resourceGroups/<your_resource_group>/providers/Microsoft.Network/virtualNetworks/<your_vnet_name>/subnets/<your_subnet_name>",
          "publicIPAddressConfiguration": {
               "provision": "NoPublicIPAddresses"
          }
     },
     "resizeTimeout": "PT15M",
     "targetDedicatedNodes": 2,
     "targetLowPriorityNodes": 0,
     "taskSlotsPerNode": 1,
     "taskSchedulingPolicy": {
          "nodeFillType": "spread"
     },
     "enableAutoScale": false,
     "enableInterNodeCommunication": false,
     "targetNodeCommunicationMode": "simplified"
}

使用 ARM 範本建立沒有公用 IP 位址的集區

您可以使用此 Azure 快速入門範本 來建立集區,而不需使用 Azure Resource Manager (ARM) 範本的公用 IP 位址。

樣本會部署下列資源:

  • 已設定IP防火牆的 Azure Batch 帳戶,以封鎖 Batch 節點管理端點的公用網路存取
  • 具有網路安全組的虛擬網路,以封鎖因特網輸出存取
  • 用來存取帳戶之 Batch 節點管理端點的私人端點
  • 使用連結至虛擬網路的私人 DNS 區域進行私人端點的 DNS 整合
  • 部署在虛擬網路中且沒有公用IP位址的 Batch 集區

如果您熟悉使用 ARM 範本,請選取 [ 部署至 Azure ] 按鈕。 範本會在 Azure 入口網站中開啟。

Button to deploy the Resource Manager template to Azure.

注意

如果私人端點部署因為 groupId “nodeManagement” 無效而失敗,請檢查區域是否位於支援的清單中,以取得 簡化的計算節點通訊。 選擇正確的區域,然後重試部署。

因特網的輸出存取

在沒有公用IP位址的集區中,除非您適當地設定網路設定,例如使用 虛擬網路NAT,否則虛擬機將無法存取公用因特網。 NAT 只允許從虛擬網路中的虛擬機對因特網進行輸出存取。 批次建立的計算節點將無法公開存取,因為它們沒有相關聯的公用IP位址。

提供輸出連線的另一種方式是使用使用者定義的路由 (UDR)。 這個方法可讓您將流量路由傳送至具有公用因特網存取的 Proxy 計算機,例如 Azure 防火牆

重要

針對沒有公用IP位址的簡化節點通訊集區建立額外的網路資源(負載平衡器、網路安全組)。 由於集區中的計算節點未系結至任何負載平衡器,Azure 可能會提供 預設輸出存取。 不過,默認輸出存取不適用於生產工作負載,將於 2025 年 9 月 30 日淘汰(請參閱 官方公告)。 因此,如果您的工作負載需要因特網輸出存取,或您的集區不使用私人端點來存取 Batch 節點管理端點,您必須提供自己的解決方案來啟用因特網輸出存取。

疑難排解

Batch 集區中無法使用的計算節點

如果計算節點在沒有公用IP位址的 Batch 集區中處於無法使用狀態,第一個最重要的檢查就是驗證 Batch 節點管理服務的輸出存取權。 必須正確設定,計算節點才能從虛擬網路連線到服務。

使用 nodeManagement 私人端點

如果您在 Batch 帳戶的虛擬網路中建立節點管理私人端點:

  • 檢查私人端點是否建立在正確的虛擬網路中、 布建成功 狀態,以及處於 核准 狀態。
  • 檢查是否已為 Batch 帳戶的節點管理端點正確設定 DNS 組態:
    • 如果您的私人端點是使用自動私人 DNS 區域整合所建立,請檢查 DNS A 記錄是否已在私人 DNS 區域中 privatelink.batch.azure.com正確設定,且區域已連結至您的虛擬網路。
    • 如果您使用自己的 DNS 解決方案,請確定 Batch 節點管理端點的 DNS 記錄已正確設定,並指向私人端點 IP 位址。
  • 檢查您帳戶的 Batch 節點管理端點的 DNS 解析。 您可以從虛擬網路內執行 nslookup <nodeManagementEndpoint> 來確認它,DNS 名稱應該解析為私人端點 IP 位址。
  • 如果您的虛擬網路已啟用 私人端點網路原則 ,請檢查 NSG 和 UDR,以取得 Batch 集區和私人端點的子網。 必須允許來自 Batch 集區子網裝載私人端點之子網的 TCP/443 輸入連線。
  • 從 Batch 集區的子網,使用預設 HTTPS 連接埠 (443) 對節點管理端點執行 TCP Ping。 此探查可以判斷私人連結連線是否如預期般運作。
# Windows
Test-TcpConnection -ComputeName <nodeManagementEndpoint> -Port 443
# Linux
nc -v <nodeManagementEndpoint> 443

如果 TCP Ping 失敗(例如逾時),它通常是私人連結連線的問題,而且您可以使用此私人端點資源引發 Azure 支援 票證。 否則,此節點無法使用的問題可能會像一般 Batch 集區一樣發生問題,而且您可以使用 Batch 帳戶提出支援票證。

使用您自己的因特網輸出解決方案

如果您使用自己的因特網輸出解決方案,而不是私人端點,請對節點管理端點執行 TCP Ping。 如果無法運作,請檢查您的輸出存取是否已正確設定,方法是遵循簡化計算節點通訊的詳細需求

連線 計算節點

沒有公用IP位址的 Batch 集區中計算節點的因特網輸入存取權。 若要存取計算節點以進行偵錯,您必須從虛擬網路內連線:

  • 使用虛擬網路內的 Jumpbox 計算機,然後從該處連線到您的計算節點。
  • 或者,請嘗試使用其他遠端連線解決方案,例如 Azure Bastion
    • 在已啟用IP型連線的虛擬網路中建立 Bastion。
    • 使用 Bastion 使用其 IP 位址連線到計算節點。

您可以遵循指南 連線 計算節點,以取得 Batch 集區中目標計算節點的使用者認證和 IP 位址。

從舊版的無公用IP集區移轉

針對使用 舊版 Azure Batch No Public IP 集區的現有集區,只能移轉在虛擬網路中建立的 區。

  1. 在虛擬網路中建立 Batch 節點管理 的私人端點。
  2. 將集區的節點通訊模式更新為 簡化
  3. 將集區相應減少為零個節點。
  4. 再次相應放大集區。 然後,集區會自動移轉至新版本。

下一步