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

如何在ArgoCD中使用AKS托管身份连接ACR并创建应用?

问题(翻译后)

我希望使用用户分配或托管身份,通过AKS和ArgoCD创建应用。我已为AKS身份分配了ACR的AcrPull权限,随后执行命令argocd repo add myACR.azurecr.io --type helm --name helm --enable-oci添加仓库(其中helm是仓库根目录),ArgoCD UI显示连接状态为成功的绿色勾选标记。但尝试为实际镜像创建应用时失败,报错信息为:

helm pull oci://myACR.azurecr.io/helm/mychart --version 0.0.1 --destination /tmp/helm706383544执行失败,退出状态1:Error: failed to authorize: failed to fetch anonymous token: unexpected status: 401 Unauthorized

补充说明:若启用ACR管理员用户,并在添加ArgoCD仓库时使用--username XXX --password XXX参数,一切运行正常。

请问我遗漏了什么配置?是否可以通过托管身份实现该需求?还是必须启用ACR管理员用户(或使用令牌)?


回答

完全可以通过托管身份实现需求,不需要启用ACR管理员用户或使用静态令牌。你遗漏的核心配置是让ArgoCD的Pod能够实际利用AKS的托管身份完成ACR的身份认证,以下是具体修复步骤:

1. 明确托管身份的权限与关联对象

你提到给AKS身份分配了AcrPull权限,需确认:

  • 优先使用用户分配的托管身份(而非AKS集群系统托管身份,后者权限范围过大且不安全),且该身份已被授予目标ACR的AcrPull角色权限。
  • 必须确保ArgoCD的核心组件Pod(argocd-application-controller和argocd-repo-server,负责拉取Helm Chart)能调用这个托管身份。

2. 配置ArgoCD Pod与托管身份的关联(推荐用Azure工作负载身份)

Azure工作负载身份是当前最安全的身份关联方案,替代传统Pod Identity:

  • 创建用户分配的托管身份,为其授予目标ACR的AcrPull权限。
  • 为该托管身份创建联合身份凭据(Federated Identity Credential),关联ArgoCD使用的Kubernetes服务账户(默认在argocd命名空间下,对应argocd-application-controller和argocd-repo-server)。
  • 给ArgoCD的服务账户添加注解,使其启用工作负载身份:
    annotations:
      azure.workload.identity/use: "true"
      azure.workload.identity/client-id: "<你的用户分配托管身份Client ID>"
    
  • 重启ArgoCD的相关Pod,让配置生效。

3. 验证身份访问有效性

进入ArgoCD的argocd-repo-server或argocd-application-controllerPod,执行以下命令测试:

# 用托管身份登录ACR
az acr login --name myACR --identity

# 尝试拉取Helm Chart
helm pull oci://myACR.azurecr.io/helm/mychart --version 0.0.1

如果两步都成功,说明身份配置已生效。

4. 重新确认ArgoCD仓库配置

你之前执行的argocd repo add命令无需修改,保持argocd repo add myACR.azurecr.io --type helm --name helm --enable-oci即可——ArgoCD会自动利用Pod的托管身份完成OCI仓库认证,无需传入用户名密码。

为什么UI显示连接成功但实际拉取失败?

ArgoCD UI的连接测试仅做基础的仓库可达性检查,不会实际拉取Chart或验证完整权限。只有在同步应用时才会触发完整的Helm拉取流程,此时若托管身份未正确关联,就会出现401未授权错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 14:35:34