无法将Docker镜像从Google Container Registry中拉入Kubernetes Pod

时间:2017-03-02 23:19:19

标签: google-cloud-platform google-container-registry

我已阅读此question和此one,并使用服务帐户JSON密钥和项目:所有者和查看者权限为Google Container Registry创建了我的Kubernetes秘密。我还通过访问控制台验证了图像确实存在于Google容器注册表中。

我也读过这个document

当我跑步时:

minikube dashboard

然后从用户界面,我点击“+”sybmol,指定我的图像的URL,如下所示:

project-123456/bot-image

然后点击“高级选项”并指定导入的秘密。

几秒钟后,我看到了这个错误:

Error: Status 403 trying to pull repository project-123456/bot-image: "Unable to access the repository: project-123456/bot-image; please verify that it exists and you have permission to access it (no valid credential was supplied)."

如果我查看Secret文件(.dockerconfigjson)中的内容,它就像: {“https://us.gcr.io”:{“email”:“admin@domain.com”,“auth”:“longtexthere”}}

可能是什么问题?

1 个答案:

答案 0 :(得分:3)

json需要具有顶级"{auths": json密钥:

Creating image pull secret for google container registry that doesn't expire?

所以json的结构应该是:

{"auths":{"https://us.gcr.io": {"email": "admin@domain.com", "auth": "longtexthere"}}}

如果您仍有问题,可以下载最新版本的minikube(0.17.1)并运行 minikube addons configure registry-creds 按照提示设置信用卡 然后运行minikube addons enable registry-creds

现在你应该能够使用如下结构的yaml从GCR中拉下pod:

apiVersion: v1
kind: Pod
metadata:
  name: foo
  namespace: default
spec:
  containers:
    - image: gcr.io/example-vm/helloworld:latest
      name: foo

编辑:6/13/2018更新命令以反映@Rambatino的评论