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

Azure DevOps VMSS代理无法连接带专用终结点的私有ACR

解决Azure DevOps流水线推送私有ACR时的公网IP访问拒绝问题
  • 检查Docker服务连接的认证逻辑
    确认dockerConn服务连接使用服务主体密钥认证(而非ACR管理员账户,因为已禁用管理员凭据)。直接在VMSS代理节点上执行docker login <你的ACR名称>.azurecr.io,用该服务主体的客户端ID和密钥测试登录,验证是否能正常访问ACR。同时确认服务主体的acrPush角色是直接分配在ACR资源上,而非仅在服务连接配置中声明。

  • 排查VMSS代理子网的路由与服务端点

    • 检查agentSubnet子网的用户定义路由(UDR),确认没有强制将ACR流量导向公网出口的规则(比如指向NAT网关的0.0.0.0/0路由优先级过高)。
    • 若子网启用了Azure Container Registry的服务端点,建议临时禁用。专用终结点与服务端点共存可能引发路由冲突,导致流量走公网而非专用链路。
  • 验证代理节点的DNS解析有效性
    虽然nslookup结果正常,但在VMSS代理节点上执行ping <你的ACR名称>.azurecr.io或dig <你的ACR名称>.azurecr.io,确认返回的是ACR专用终结点的私有IP。如果返回公网IP,说明节点存在DNS缓存,重启代理节点或执行systemd-resolve --flush-caches(Linux节点)刷新缓存后重试。

  • 检查Docker@2任务的配置细节

    • 确保任务的containerRegistry参数明确指定dockerConn服务连接,没有硬编码ACR的公网地址。
    • 查看代理节点的/etc/docker/daemon.json(Linux)或Docker配置文件(Windows),确认未配置HTTP代理。如果存在代理配置,会导致Docker请求走公网出口,临时禁用后测试流水线。
  • 兜底验证ACR的网络规则
    确认ACR的网络访问规则仅启用专用终结点访问,没有误添加公网IP允许列表或其他非目标VNet的访问规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:33:23