从Azure Kubernetes服务提取ACR图像时获得“未经授权:需要身份验证”

时间:2018-08-21 07:52:32

标签: docker kubernetes azure-container-service azure-container-registry azure-kubernetes

我遵循了guide here(授予AKS对ACR的访问权限),但是当Pod试图从ACR提取图像时,我仍然收到“未经授权:需要身份验证”。

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

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

3 个答案:

答案 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)

JeffCharles-我也遇到了这个问题,但发现问题的真正原因是AKS试图从不存在的容器注册表中提取图像标签(例如最新)。当我将其更新为可用的标签(例如9)时,天蓝色kubernetes服务(AKS)上的部署脚本成功运行。

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

希望这会有所帮助! :)

答案 2 :(得分:0)

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

请参阅 this GitHub thread 以获得更详细的讨论。