我已阅读此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”}}
可能是什么问题?
答案 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的评论