我遵循了guide here(授予AKS对ACR的访问权限),但是当Pod试图从ACR提取图像时,我仍然收到“未经授权:需要身份验证”。
执行的bash脚本没有任何错误。我尝试删除我的Deployment
并从头开始创建kubectl apply -f ...
,但不走运。
我想避免使用第二种使用秘密的方法。
答案 0 :(得分:3)
您在问题中发布的链接是从Azure Kubernetes服务使用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>
中检查service-principal-ID和service-principal-password是否正确。您在yaml文件中设置的机密也应检查是否与您创建的机密相同。
答案 1 :(得分:1)
Jeff和Charles-我也遇到了这个问题,但发现问题的真正原因是AKS试图从不存在的容器注册表中提取图像标签(例如最新)。当我将其更新为可用的标签(例如9)时,天蓝色kubernetes服务(AKS)上的部署脚本成功运行。
我已对指南的产品反馈进行了评论,要求改进错误消息上下文以反映此根本原因。
希望这会有所帮助! :)
答案 2 :(得分:0)
就我而言,我遇到了这个问题,因为我的时钟不同步。我在适用于 Linux 的 Windows 子系统上运行,因此运行 sudo hwclock -s
解决了我的问题。
请参阅 this GitHub thread 以获得更详细的讨论。