加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用Docker Hub和私有映像的Kubernetes PullImageError

发布时间:2020-12-16 03:52:44 所属栏目:安全 来源:网络整理
导读:我很难让Kubernetes使用我的私有hub.docker.com注册表图像. 我正在使用kubectl版本:客户端版本:version.Info {Major:“1”,Minor:“1”,GitVersion:“v1.1.0-alpha.0.1588 e44c8e6661c931”,GitCommit:“e44c8e6661c931f7fd434911b0d3bca140e1df3a”,G

我很难让Kubernetes使用我的私有hub.docker.com注册表图像.

我正在使用kubectl版本:客户端版本:version.Info {Major:“1”,Minor:“1”,GitVersion:“v1.1.0-alpha.0.1588 e44c8e6661c931”,GitCommit:“e44c8e6661c931f7fd434911b0d3bca140e1df3a”,GitTreeState:“clean”}
服务器版本:version.Info {Major:“1”,GitVersion:“v1.1.3”,GitCommit:“6a81b50c7e97bbe0ade075de55ab4fa34f049dc2”,GitTreeState:“clean”}

Mac OS X Yosemite 10.10.5上的Vagrant 1.7.4

我按照这里给出的指示:https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/user-guide/images.md#pre-pulling-images

简而言之,它表示您应该登录到注册表,然后base64编码生成的.docker / config.json的内容,并在yaml文档中使用它,如下所示:

apiVersion: v1
kind: Secret
metadata:
  name: myregistrykey
data:
  .dockercfg: eyAiYXV0aHMiOiB7ICJodHRwczovL2luZGV4LmRvY2tlci5pby92MS8iOiB7ICJhdXRoIjogImFXNTBjbWx1YzJsak9tSTJVVTR5Z...h1YkBpbnRyaW5zaWMud29ybGQiIH0gfSB9Cg==
type: kubernetes.io/dockercfg

然后将其喂给kubectl.然后我在我的pod定义中使用了生成的键(这里称为myregistrykey):

apiVersion: v1
kind: Pod
metadata:
  name: authorities-backend
spec:
  containers:
    - name: authorities-backend
      image: intrinsic/authorities-backend:latest
  imagePullSecrets:
    - name: myregistrykey

并且kubectl创建了它.

但是,kubectl无法检索图像:

[root@kubernetes-master intrinsic]# kubectl get pods
NAME                  READY     STATUS           RESTARTS   AGE
authorities-backend   0/1       PullImageError   0          7m

然而,停泊在Kubernetes大师身上的工作人员.

我错过了什么?

UPDATE

在上面的pod定义中,我省略了指定注册表主机,即docker.io.修复它,它变成:
image:docker.io/intrinsic/authorities-backend:latest
但问题仍然存在.做kubectl获取事件-w让我:

6s 0s 2 authority-backend Pod spec.containers {authorities-backend}失败{kubelet 10.245.1.3}无法提取图片“docker.io/intrinsic/authorities-backend”:对于docker.io/intrinsic/authorities-图像拉取失败 – 后端,这可能是因为此请求没有凭据.详细信息:(错误:图像内在/ authority-backend:最新未找到)

我知道这个秘密已经正确注册,因为我在kubectl下得到了秘密:

名称类型数据年龄
default-token-a7s5n kubernetes.io/service-account-token 2 51m
myregistrykey kubernetes.io/dockercfg 1 50米

仍然困惑……

最佳答案
文档已过时,因为它引用.dockercfg而不是.docker / config.json.我会更新它.

使用新的.docker / config.json格式时,需要设置type:kubernetes.io/dockerconfigjson而不是type:kubernetes.io/.dockercfg.

支持类型:kubernetes.io/dockerconfigjson已在v1.1.0中添加,因此服务器支持它,但客户端不支持(v1.1.0-alpha早于v1.1.0).

当您使用type:kubernetes.io/dockerconfigjson时,它应验证您的秘密内容.

使用类型:kubernetes.io/dockerconfigjson,您确实希望保留auths包装器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读