从 Azure Kubernetes 服务拉取 ACR 映像时获取"unauthorized: authentication required"



我遵循了此处的指南(授予AKS对ACR的访问权限(,但是当Pod尝试从ACR拉取映像时,仍然遇到"未经授权:需要身份验证"。

执行的 bash 脚本没有任何错误。我尝试删除我的Deployment并从头开始创建它kubectl apply -f ...,没有运气。

我想避免使用使用秘密的第二种方法。

你在问题中发布的链接是从 Azure Kubernetes Service 使用 Azure 容器注册表进行身份验证的正确步骤。我之前试过,效果很好。

所以我建议你可以在命令kubectl create secret docker-registry acr-auth --docker-server <acr-login-server> --docker-username <service-principal-ID> --docker-password <service-principal-password> --docker-email <email-address>中检查服务主体ID和服务主体密码是否正确。并且您在yaml文件中设置的密钥也应检查是否与您创建的密钥相同。

Jeff & Charles - 我也遇到了这个问题,但发现问题的实际原因是 AKS 试图从不存在的容器注册表中提取一个映像标记(例如最新的(。当我将其更新为可用的标记(例如 9(时,Azure kubernetes 服务 (AKS( 上的部署脚本成功运行。

我已经对指南的产品反馈进行了评论,以请求改进错误消息上下文以反映此根本原因。

希望这有帮助! :)

就我而言,我遇到了这个问题,因为我的时钟不同步。我在 Linux 的 Windows Subsytem 上运行,因此运行sudo hwclock -s解决了我的问题。

有关更长的讨论,请参阅此 GitHub 线程。

就我而言,Azure 容器注册表中未启用管理员用户。

我必须启用它: 转到"容器注册表"页面>打开注册表> 在"设置"下的侧面板中,打开"访问密钥"并打开"管理员用户"。这将生成用户名、密码和密码2。

相关内容

最新更新