You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用专用终结点访问CosmosDB时出现‘请求来自VNET服务终结点’错误如何解决?

解决AKS中通过专用端点访问CosmosDB的DNS解析与防火墙拦截问题

你的问题核心是DNS解析未正确指向专用端点IP,导致请求仍走旧的服务端点路径,但当前CosmosDB已禁用公共访问和选定网络规则,因此触发防火墙拦截。以下是具体排查和解决步骤:

1. 修复DNS解析不匹配问题

1.1 验证专用DNS区域与AKS VNET的关联

  • 登录Azure门户,找到privatelink.documents.azure.com专用DNS区域,检查VNET链接:必须确保AKS集群所在的整个VNET(而非仅专用端点所在子网)已关联到该区域。若仅关联部分子网,AKS节点子网内的Pod无法正确解析专用IP。
  • 若未关联,添加AKS VNET到专用DNS区域的链接列表。

1.2 检查AKS Pod的DNS策略

  • 查看测试Pod的DNS配置:执行kubectl describe pod <pod-name>,检查DNS Policy字段。
    • 如果是None:修改Pod的dnsPolicy为ClusterFirst,或在自定义DNS配置中添加专用DNS区域的解析规则。
    • 如果是ClusterFirst:确认AKS的CoreDNS未被手动修改(AKS默认会自动关联VNET的私有DNS区域,自定义配置可能导致失效)。

1.3 刷新CoreDNS缓存

CoreDNS可能缓存了旧的解析记录,执行以下命令重启CoreDNS Pod:

kubectl rollout restart deployment coredns -n kube-system

重启后再次在Pod内执行nslookup cosmosname.documents.azure.com,确认解析出的IP与专用DNS区域中的记录一致。

2. 清理残留的服务端点配置

  • 找到AKS节点所在的子网,进入服务端点配置页面,移除Microsoft.AzureCosmosDB的服务端点条目。
  • 即使CosmosDB已禁用“选定网络”,若子网仍保留服务端点标记,请求会优先走服务端点路径,触发防火墙拦截。

3. 验证专用端点状态

  • 检查CosmosDB的专用端点:确认状态为已批准,专用链接连接状态为已成功。
  • 若专用端点处于“待批准”状态,需在CosmosDB的专用链接页面手动批准该连接。

4. 测试连接有效性

在测试Pod内执行以下命令验证:

# 查看解析详情
dig cosmosname.documents.azure.com
# 测试端口连通性
telnet cosmosname.documents.azure.com 443

若解析IP与专用DNS区域一致且443端口能连通,再重启应用Pod测试连接。

内容的提问来源于stack exchange,提问作者floaty39

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 11:00:06