首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从私有存储库中提取图像

从私有存储库中提取图像
EN

Stack Overflow用户
提问于 2020-11-07 23:46:53
回答 1查看 1.1K关注 0票数 1

我是库伯内特斯和GCP的新手。我正试图在当地部署。我有一个图片,它是在一个私人存储库在谷歌注册表。

我能够在GCP集群中部署,但在本地,当我尝试应用部署时,我得到了ErrImagePull

我尝试了以下步骤

  1. 创建了一个角色ViewerService Account,并下载了json文件

使用以下命令openssl base64 -in file.json -out encodedfile.json对文件进行

  1. I编码

  1. I删除了编码文件上的返回字符(以便将编码的内容放在一行中)

  1. I使用yaml创建了一个秘密,以便能够访问码头注册表,并将编码文件的内容粘贴到.dockerconfigjson

kubernetes.io/dockerconfigjson:apiVersion: v1种类:机密元数据:名称: gcr-json-key命名空间:开发数据:.dockerconfigjson: xxxxx类型:v1

我添加的部署中的

imagePullSecrets:

代码语言:javascript
复制
- name: gcr-json-key

我也收到了同样的错误,它无法从私有的google注册表中提取到我的本地机器。

更新1

我用以下命令对json文件进行了编码

代码语言:javascript
复制
base64 -i myorg-8b8eea93246a.json -o encoded-myorg-8b8eea93246a.json

然后我检查了这个编码的文件是否有效

代码语言:javascript
复制
cat encoded-myorg-8b8eea93246a.json | docker login -u _json_key_base64 --password-stdin \
https://us-docker.pkg.dev

它起了作用

代码语言:javascript
复制
Login Succeeded

这是我用来创建秘密的yaml文件

代码语言:javascript
复制
apiVersion: v1
kind: Secret
metadata:
  name: gcr-json-key
  namespace: development
data:
  .dockerconfigjson: <XXXX content of encoded myorg-8b8eea93246a.json file XXXX>
type: kubernetes.io/dockerconfigjson

在我的部署中

代码语言:javascript
复制
...
spec:
  ...
  imagePullSecrets:
  - name: gcr-json-key
...

将创建部署,但不提取映像。在kubectl get all中,我可以看到状态ImagePullBackOff

当我对豆荚做描述时

代码语言:javascript
复制
Failed to pull image "gcr.io/xxx/yyy": rpc error: code = Unknown desc = Error response from daemon: unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-08 05:57:46

你走在正确的道路上。您需要为注册表登录创建秘密。这对我来说很管用:

代码语言:javascript
复制
kubectl create secret docker-registry <secret_name> --docker-server=<your.registry.domain.name> --docker-username=<user> --docker-password=<password> --docker-email=<your_email>

然后我用这个秘密来部署:

代码语言:javascript
复制
spec:
  replicas: 1
  strategy: 
    type: Recreate
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: server
    spec:
      imagePullSecrets:
        - name: <secret_name>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64733546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档