共享子网中Databricks结合Private Link的正确配置咨询
共享子网中Databricks结合Private Link的正确配置方案
一、先确认VPC端点的核心配置与权限
- 要求子网提供方确认VPC端点的安全组规则:必须允许你的账户下Databricks工作负载(集群节点、控制平面)访问端点的443端口(Databricks Private Link核心端口),以及对应服务的专属端口(如Jobs、DBFS相关端口)。
- 确认共享子网所在VPC已开启
enableDnsSupport和enableDnsHostnames,同时VPC端点的私有DNS名称已启用(这两项由提供方配置,必须落实)。 - 要求提供方给VPC端点添加资源策略,允许你的账户ID访问,示例策略(提供方配置):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::你的账户ID:root" }, "Action": "ec2:DescribeNetworkInterfaces", "Resource": "*" } ] }
二、修正Terraform配置的关键项
即使是标准配置,针对共享子网场景必须调整以下内容:
- 显式配置
private_link_config,关联已有的VPC端点ID:
resource "databricks_workspace" "this" { # 保留你的基础配置(如名称、区域等) private_link_config { private_link_endpoints { workspace = "vpce-xxxxxxxxxxxxxxxxx" # 共享子网中的Workspace类VPC端点ID jobs = "vpce-yyyyyyyyyyyyyyyyy" # 对应Jobs类VPC端点ID(按需配置) dbfs = "vpce-zzzzzzzzzzzzzzzzz" # 对应DBFS类VPC端点ID(按需配置) } private_link_enabled = true public_access_enabled = false # 完全走Private Link时关闭公网访问 } vpc_config { subnet_ids = ["subnet-shared-xxxxxx"] # 共享子网ID security_group_ids = ["sg-xxxxxxxxxxxxxxxxx"] # 你的账户下的安全组,需允许出站到VPC端点的443端口 } }
- 调整安全组规则:你账户下用于Databricks集群的安全组,必须允许出站流量到VPC端点的IP/安全组,同时放开集群节点间的内部通信端口(TCP 15001-15006等)。
- 配置DNS转发:在你的账户VPC中创建Route 53解析器规则,将
*.databricks.com等Databricks服务域名转发到共享子网所在VPC的DNS服务器,确保工作负载能解析到私有端点IP。
三、集群启动失败的排查步骤
- 查看集群日志:在Databricks控制台集群详情页,打开
Spark driver logs,搜索Private Link、connection refused关键词,定位具体连接失败的服务。 - 测试端点连通性:在共享子网内启动你的账户下的EC2实例,执行
curl -v https://<工作区私有端点DNS>,验证HTTPS连接是否正常。 - 联系提供方确认:让对方检查VPC端点状态为
available,关联的网络接口无异常。
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

