你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用简化计算节点通信

Azure Batch 池包含一个或多个计算节点,这些节点以 Batch 任务的形式执行用户特定的工作负载。 要启用 Batch 功能和 Batch 池基础结构管理,计算节点必须与 Azure Batch 服务通信。

Batch 支持两种类型的通信模式:

  • 经典:Batch 服务发起与计算节点的通信。
  • 简化:计算节点发起与 Batch 服务的通信。

本文介绍简化通信模式和关联的网络配置要求。

提示

本文档中关于网络资源和规则(如 NSG)的信息不适用于没有公共 IP 地址的 Batch 池,它们使用节点管理专用终结点,无 Internet 出站访问。

警告

经典计算节点通信模型将于 2026 年 3 月 31 日停用,取而代之的是本文档所述的简化通信模式。 有关详细信息,请参阅通信模式迁移指南

支持的区域

Azure Batch 中的简化计算节点通信目前适用于以下区域:

  • 公共:Batch 存在除印度西部以外的所有公共区域。
  • 政府:USGov 亚利桑那州、USGov 弗吉尼亚州、USGov 得克萨斯州。
  • 中国:存在 Batch 的所有中国区域,中国北部 1 和中国东部 1 除外。

经典和简化模式之间的差异

简化计算节点通信模式可简化代表用户管理 Batch 池基础结构的方式。 此通信模式可以缩小基线操作中所需的入站和出站网络连接的范围并降低操作复杂性。

在虚拟网络中创建池时,使用经典通信模式的 Batch 池在网络安全组 (NSG)、用户定义路由 (UDR) 和防火墙中需要以下网络规则:

  • 入站:

    • 目标端口 2987629877,来自 BatchNodeManagement.<region>,通过 TCP
  • 出站:

    • 目标端口 443,通过 TCP 到 Storage.<region>
    • 对于需要返回与 Batch 服务通信的特定工作负载(如作业管理器任务),目标端口 443,通过 TCP 到 BatchNodeManagement.<region>

具有“简化”通信模式的 Batch 池只需要对 Batch 帐户的节点管理终结点进行出站访问(请参阅 Batch 帐户公共终结点)。 它们需要 NSG、UDR 和防火墙中的以下网络规则:

  • 入站:

    • None
  • 出站:

    • 目标端口 443,通过 ANY 到 BatchNodeManagement.<region>

可以使用列出出站网络依赖项终结点 API 来发现 Batch 帐户的出站要求。 此 API 会报告依赖项基本集,具体取决于 Batch 帐户池的通信模型。 特定于用户的工作负载可能需要额外规则,例如开放发送到其他 Azure 资源(如应用程序包的 Azure 存储、Azure 容器注册表)的流量或终结点(如用于虚拟文件系统装载功能的 Microsoft 包存储库)。

简化模式的优势

利用简化模式的 Azure Batch 用户可从网络连接和规则的简化中受益。 简化计算节点通信取消了通过 Internet 为入站通信打开端口的要求,有助于降低安全风险。 基线操作只需要一个发送到已知服务标记的出站规则。

简化模式还提供了比经典通信模式更精细的数据外泄控制,因为不再需要向 Storage.<region> 进行出站通信。 如果工作流需要,可以显式锁定发往 Azure 存储的出站通信。 例如,可以将出站通信规则限定为 Azure 存储,以启用 AppPackage 存储帐户或其他用于资源文件或输出文件的存储帐户。

即使工作负载目前不受此更改的影响(如以下部分中所述),也建议使用简化模式。 Batch 服务在以后的改进功能可能只能通过简化计算节点通信来正常运行。

经典和简化通信模式之间的潜在影响

在许多情况下,简化通信模式不会直接影响 Batch 工作负载。 但是,在以下情况下,简化计算节点通信会造成影响:

  • 在创建 Batch 池的过程中指定虚拟网络的用户,以及执行以下一项或两项操作的用户:
    • 显式禁用与简化计算节点通信不兼容的出站网络流量规则。
    • 使用与简化计算节点通信不兼容的 UDR 和防火墙规则。
  • 用户在计算节点上启用软件防火墙,并显式禁用与简化计算节点通信不兼容的软件防火墙规则中的出站流量。

如果这两种情况中有任何一种适用于你,则按照下一部分中概述的步骤进行操作,以确保 Batch 工作负载仍可在简化模式中运行。 强烈建议你先测试并验证开发和测试环境中的所有更改,然后再将更改推送到生产环境中。

简化模式所需的网络配置更改

需要按照以下步骤来迁移到新的通信模式:

  1. 确保适用于 Batch 池的网络配置(NSG、UDR、防火墙等)包括各个模式的联合,即结合经典和简化模式的网络规则。 这些规则至少是:
    • 入站:
      • 目标端口 2987629877,来自 BatchNodeManagement.<region>,通过 TCP
    • 出站:
      • 目标端口 443,通过 TCP 到 Storage.<region>
      • 目标端口 443,通过 ANY 到 BatchNodeManagement.<region>
  2. 如果工作流需要任何其他入站或出站方案,则需要确保你的规则反映这些要求。
  3. 使用以下选项之一来更新要使用新通信模式的工作负载。
    • 创建将 targetNodeCommunicationMode 设置为简化的新池并验证新池是否正常工作。 将工作负载迁移到新池,并删除任何较早的池。
    • 将现有池 targetNodeCommunicationMode 属性更新为简化,然后将所有现有池的大小调整为零节点并回缩。
  4. 使用获取池 API、列出池 API 或 Azure 门户确认将 currentNodeCommunicationMode 设置为所需的简化通信模式。
  5. 至少将所有适用的网络配置修改为简化的通信规则(请注意上述任何所需的额外规则):
    • 入站:
    • 出站:
      • 目标端口 443,通过 ANY 到 BatchNodeManagement.<region>

如果按照这些步骤操作,但以后想要切换回经典计算节点通信,则需要执行以下操作:

  1. 还原只在经典计算节点通信模式下运行的任何网络配置。
  2. 创建新池或更新将 targetNodeCommunicationMode 属性设置为经典的现有池。
  3. 将工作负载迁移到这些池,或调整现有池的大小并回缩(参阅上面的步骤 3)。
  4. 参阅上面的步骤 4,确认池在经典通信模式下运行。
  5. (可选)还原网络配置。

指定 Batch 池上的通信模式

通过 Batch 池的 targetNodeCommunicationMode 属性,可以指示 Batch 服务在 Batch 服务和计算节点之间优先使用哪种通信模式。 下面是此属性的允许选项:

  • 经典:使用经典计算节点通信创建池。
  • 简化:使用简化计算节点通信创建池。
  • 默认:允许 Batch 服务选择适当的计算节点通信模式。 对于没有虚拟网络的池,可以在经典或简化模式下创建池。 对于具有虚拟网络的池,该池在 2024 年 9 月 30 日前始终默认为经典。 有关详细信息,请参阅经典计算节点通信模式迁移指南

提示

指定目标节点通信模式后,会指示 Batch 服务的首选项,但并不保证会遵循它。 池中的某些配置可能会阻止 Batch 服务遵循指定的目标节点通信模式,例如与无公共 IP 地址、虚拟网络和池配置类型交互。

下面是如何创建使用简化计算节点通信的 Batch 池的示例。

Azure 门户

首先,登录到 Azure 门户。 然后,导航到 Batch 帐户的“”边栏选项卡,选择“添加”按钮。 在“可选设置”下,可以从节点通信模式的下拉菜单中选择“简化”选项,如下所示:

Screenshot that shows creating a pool with simplified mode.

若要将现有池更新为简化通信模式,请导航到 Batch 帐户的“”边栏选项卡,然后选择要更新的池。 在左侧导航栏中,选择“节点通信模式”。 在那里你能够选择新的目标节点通信模式,如下所示。 选择适当的通信模式后,选择“保存”按钮进行更新。 需要先将池缩减为零个节点,然后回缩以使更改生效(如果条件允许)。

Screenshot that shows updating a pool to simplified mode.

若要显示池的当前节点通信模式,请导航到 Batch 帐户的“”边栏选项卡,然后选择要查看的池。 在左侧导航栏中选择“属性”,池节点通信模式会显示在“常规”部分下。

Screenshot that shows properties with a pool with simplified mode.

REST API

此示例演示如何使用 Batch 服务 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 地址的池提供的迁移支持有限。 只有当这些池是在虚拟网络中创建时才能迁移它们,否则它们不会使用简化计算节点通信,即使在池上指定也是如此。 有关详细信息,请参阅迁移指南
  • 云服务配置池目前不支持简化计算节点通信,并且已弃用。 不遵循为这些类型的池指定的通信模式,并且始终会导致使用经典通信模式。 我们建议对 Batch 池使用虚拟机配置。 有关详细信息,请参阅将 Batch 池配置从云服务迁移到虚拟机

后续步骤