4

我已经阅读了这个问题和这个问题,并使用带有项目的服务帐户 JSON 密钥为 Google Container Registry 创建了我的 Kubernetes 密钥:所有者和查看者权限。我还通过控制台验证了该图像确实存在于 Google Container Registry 中。

我也读过这个文件

当我运行时:

minikube dashboard

然后在用户界面中,单击“+”符号,指定我的图像的 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" }}

可能是什么问题?

4

1 回答 1

3

json 需要具有来自以下位置的顶级"{auths":json 密钥:

为不会过期的谷歌容器注册表创建图像提取密钥?

所以 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

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

于 2017-03-03T18:04:06.763 回答