在 Azure 虚拟网络中部署 Azure Databricks(VNet 注入)

在 Azure VNet 中部署 Azure Databricks,以实现网络自定义、与 Azure 服务和本地数据源的安全连接以及流量检查功能。

为何使用 VNet 注入

VNet 注入将 Azure Databricks 经典计算平面资源部署到您自己的 VNet 中,从而实现:

  • 使用服务终结点或专用终结点实现与 Azure 服务的专用连接
  • 通过用户定义的路由进行本地访问
  • 使用网络虚拟设备的网络流量检测
  • 自定义 DNS 配置
  • 通过额外的 NSG 规则对出口流量进行控制
  • 灵活的 CIDR 范围(VNet:/16/24,子网:最多 /26

权限要求

Azure 权限:工作区创建者必须在 VNet 上具有网络参与者角色,或者具有Microsoft.Network/virtualNetworks/subnets/join/action权限的Microsoft.Network/virtualNetworks/subnets/write

VNet 配置

  1. 必须将 VNet 配置为部署 Azure Databricks 工作区。 可以使用现有的 VNet 或创建新的 VNet。 VNet 必须满足以下要求:
    • 区域:VNet 必须与 Azure Databricks 工作区位于同一区域。
    • 订阅:VNet 必须与 Azure Databricks 工作区位于同一订阅中。
    • 地址空间:VNet 的 CIDR 块从 /16/24。 有关基于 VNet 大小的最大群集节点 的指南,请参阅地址空间指南
    • 子网:VNet 必须包含专用于 Azure Databricks 工作区的两个子网:
      • 容器子网(有时称为专用子网)
      • 主机子网(有时称为公共子网)
      • 每个子网至少需要使用 CIDR 块 /26。 Databricks 不建议使用小于 /26 的子网。
      • 不能跨工作区共享子网,也不能在 Azure Databricks 工作区使用的子网上部署其他 Azure 资源。
      • 建议子网大小匹配。
    • 出口流量的出站连接:Databricks 建议使用 Azure NAT 网关来连接两个子网,以实现稳定的出口 IP。 2026 年 3 月 31 日之后,新的 VNet 需要显式出站连接方法。 请参阅 安全群集连接
    • 网络安全组规则:请参阅 网络安全组规则

注意

使用安全群集连接部署工作区时,容器子网和主机子网都使用专用 IP。

地址空间指南

Azure Databricks 工作区需要 VNet 中的两个子网:容器子网和主机子网。 Azure 在每个子网中预留 5 个 IP。 Azure Databricks 需要每个群集节点的两个 IP 地址:主机子网中的主机的一个 IP 地址,一个 IP 地址用于容器子网中的容器。

规划地址空间时,请考虑以下事项:

  • 可能需要在单个 VNet 中创建多个工作区。 由于不能跨工作区共享子网,因此规划不使用总 VNet 地址空间的子网。
  • 为位于 VNet 地址空间中的两个新子网分配地址空间,并且不会与该 VNet 中当前或将来子网的地址空间重叠。

具有较小虚拟网络的工作区比具有较大虚拟网络的工作区会更快地用完 IP 地址(网络空间)。 可使用的 VNet 的 CIDR 块范围为 /16/24,两个子网(容器子网和主机子网)的 CIDR 块最大可以为 /26。 最多可以为子网创建 CIDR 块 /28 ,但是,Azure Databricks 不建议小于 /26子网。

步骤 1:创建工作区

在 Azure 门户中创建工作区并将其部署到 VNet。

  1. 在 Azure 门户中,选择“ + 创建资源 > 分析 > Azure Databricks ”或搜索 Azure Databricks。

  2. 在“ 网络 ”选项卡中,选择 VNet。

    重要

    如果未显示 VNet,请验证工作区和 VNet 是否位于同一 Azure 区域中。

  3. 配置子网的 CIDR 范围达至/26(名称最多80个字符):

    • 现有子网:输入确切的子网名称和匹配 IP 范围
    • 新子网:在 VNet 的地址空间中输入新名称和 IP 范围

    注意

    部署后无法更改子网 CIDR 范围。 Azure Databricks 会自动配置 NSG 规则和子网委派到Microsoft.Databricks/workspaces

  4. 单击“ 创建 ”以部署工作区。

步骤 2:验证工作区部署

  1. 转到 Azure 门户并导航到 Azure Databricks 工作区资源。

  2. “概述 ”页上,验证以下内容:

    • 工作区处于正常状态(未失败)。
    • 资源组和管理的资源组已列出。
    • 虚拟网络对等互连已禁用(VNet 注入预期会发生这种情况)。

托管资源组不可修改,不能用于创建虚拟机。 在所管理的资源组中创建虚拟机。

步骤 3:验证网络安全组配置

  1. 在 Azure 门户中,导航到 VNet。

  2. 单击“设置”下的“子网”。

  3. 验证容器子网和主机子网是否具有:

    • 附加的网络安全组
    • 委派到 Microsoft.Databricks/workspaces
  4. 单击网络安全组,验证是否已配置所需的入站和出站规则。 有关预期规则,请参阅 网络安全组规则参考

步骤 4:创建群集

创建工作区后,创建一个经典计算群集,验证 VNet 注入是否正常工作。

  1. 转到 Azure Databricks 工作区,并单击“概述”页上的“启动工作区”。

  2. 单击侧栏中的计算图标计算

  3. 请在“计算”页单击“创建群集”。

  4. 输入群集名称,将剩余值保留为其默认状态,然后单击“ 创建群集”。

群集运行后,托管资源组将包含新的虚拟机、磁盘、IP 地址和网络接口。 在具有 IP 地址的每个公共子网和专用子网中创建网络接口。

步骤 5:验证群集网络配置

  1. 在 Azure Databricks 工作区中,转到 Azure 门户中的托管资源组。

  2. 验证是否存在以下资源:

    • 群集节点的虚拟机
    • 附加到虚拟机的磁盘
    • 群集节点的 IP 地址
    • 公共子网和专用子网中的网络接口
  3. 在 Azure Databricks 工作区中,单击创建的群集。

  4. 导航到 Spark UI ,然后单击 “执行程序 ”选项卡。

  5. 验证驱动程序和执行器的地址是否位于专用子网范围内。 例如,如果你的专用子网是10.179.0.0/18,则驱动程序可能是10.179.0.6,而执行器可能是10.179.0.410.179.0.5。 IP 地址可能有所不同。

稳定的出口 IP 地址

对于具有 安全群集连接 和 VNet 注入的工作区,Databricks 建议配置稳定的出口公共 IP。 稳定 IP 为 Salesforce 和 IP 访问列表等服务启用外部允许列表。

警告

2026 年 3 月 31 日之后,新的 Azure VNet 默认为专用配置,无需出站 Internet 访问。 新的 Azure Databricks 工作区需要显式出站连接方法,例如 NAT 网关。 现有工作区不受影响。 请参阅 Azure 的公告

若要配置稳定的出口 IP,请参阅 使用 VNet 注入的出口配置

网络安全组规则

Azure Databricks 通过子网委托,将 Microsoft.Databricks/workspaces 服务自动配置并管理下面列出的 NSG 规则。 这些规则是工作区操作所需的。 请勿修改或删除这些规则。

注意

某些规则使用 VirtualNetwork 作为源和目标。 内部网络策略可防止跨群集通信,包括同一 VNet 中的工作区之间的通信。

Databricks 建议为每个工作区使用唯一的 NSG。

重要

将拒绝规则添加到附加到同一 VNet 或对等互连 VNet 中的其他网络和子网的 NSG。 对 入站和出站 连接应用拒绝规则,以限制进出 Azure Databricks 计算资源的流量。 仅允许群集访问所需资源所需的最低访问权限。

工作区的网络安全组规则

下表列出了工作区的网络安全组规则,并且包括两个仅当禁用 安全群集连接(SCC) 时才添加的入站安全组规则。

方向 协议 源端口 目标 目标端口 已使用
入站 任意 虚拟网络 任意 虚拟网络 任意 默认
入站 TCP AzureDatabricks(服务标记)
仅当 SCC 已禁用
任意 虚拟网络 22 公共 IP
入站 TCP AzureDatabricks(服务标记)
仅当 SCC 已禁用
任意 虚拟网络 5557 公共 IP
出站 TCP 虚拟网络 任意 AzureDatabricks(服务标记) 443, 3306, 8443-8451 默认
出站 TCP 虚拟网络 任意 SQL 3306 默认
出站 TCP 虚拟网络 任意 存储 443 默认
出站 任意 虚拟网络 任意 虚拟网络 任意 默认
出站 TCP 虚拟网络 任意 EventHub 9093 默认

注意

如果限制出站规则,Databricks 建议打开端口 111 和 2049 来启用某些库安装。

重要

Azure Databricks 是在全局 Azure 公有云基础结构上部署的 Azure 第一方服务。 服务组件之间的所有通信(包括控制平面中的公共 IP 与客户计算平面之间的公共 IP)都保留在 Azure 网络主干中。

扩展 VNet 容量

如果工作区的 VNet 对于活跃的集群节点容量不足,则有两种选择:

  • 更新 VNet 配置:此功能以公共预览版提供。 请参阅 更新工作区网络配置
  • 展开当前的 CIDR 范围:请联系 Azure Databricks 帐户团队,请求增加工作区子网 CIDR 范围。