登陆区场景下Terraform创建Azure Databricks集群报实例不可达错误
问题根本原因
你遇到的INSTANCE_UNREACHABLE报错为典型的VNet注入模式下Databricks集群节点与控制平面通信中断导致,结合你提供的配置,核心问题如下:
- 你为Databricks公共、私有子网绑定的两个NSG,所有必需的通信规则均处于注释未启用状态,集群节点间、节点与控制平面的通信被默认NSG规则拦截
- 你的部署位于Azure登陆区架构下,VNet与Hub对等后默认存在强制路由(UDR)将所有流量转发到Hub防火墙,防火墙未放通Databricks控制平面的必需通信端口
- Databricks子网的网络策略未正确关闭,导致平台无法正常配置节点路由和安全规则
修复步骤
- 取消NSG规则注释并补全必需规则:
放开databricks-public-nsg和databricks-private-nsg中所有被注释的规则,额外补充一条入站规则:允许源为AzureDatabricks服务标签、目标为VirtualNetwork、端口为443的TCP入站访问,优先级设为100 - 配置Hub防火墙放通规则:
在Hub层防火墙添加出站规则,放通VNet地址段访问以下服务标签的对应端口:AzureDatabricks:TCP 443Storage:TCP 443Sql:TCP 3306EventHub:TCP 9093
- 检查子网UDR和网络策略配置:
确认两个Databricks子网的私有端点网络策略、服务端点网络策略均已关闭,若你使用的VNet模块默认启用该配置,需额外添加参数关闭。如果存在强制路由到Hub防火墙的UDR,可临时添加Databricks控制平面IP段的例外路由直接走Internet出口,验证是否为防火墙拦截导致 - 临时验证方案:
可先将两个Databricks子网关联的NSG临时改为允许所有入站、出站流量,暂时移除子网关联的UDR,测试集群能否正常启动,确认问题根因后再逐步收紧网络规则 - 可选验证:如果仍然无法启动,可将集群
azure_attributes中的availability改为ON_DEMAND_AZURE排除Spot实例资源不足的问题
内容的提问来源于stack exchange,提问作者Pallab
相关产品推荐
相关产品推荐

