【问题标题】:Kubernetes ImagePullSecrets Failing with ImagePullBackOffKubernetes ImagePullSecrets 因 ImagePullBackOff 而失败
【发布时间】:2022-07-21 10:14:27
【问题描述】:

我无法让 Kubernetes 提取我的私有 Docker 映像。

我的 default 命名空间中有一个名为 regcred 的 kubernetes 机密,如下所示:

{"auths": {"index.docker.io": {"username": "Username", "password": "Password", "email": "random@email.com", "auth": "VXNlcm5hbWU6UGFzc3dvcmQ="}}}

身份验证是Username:Password b64 编码的。

这是我正在尝试创建的 pod,但每次使用ImagePullBackOff 都会失败。

apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: index.docker.io/jor2/hello-world:latest
  imagePullSecrets:
  - name: regcred

日志:

Error from server (BadRequest): container "private-reg-container" in pod "private-reg" is waiting to start: image can't be pulled
Events:
  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  67s                default-scheduler  Successfully assigned default/private-reg to 10.144.195.222
  Normal   Pulling    20s (x3 over 66s)  kubelet            Pulling image "index.docker.io/jor2/hello-world"
  Warning  Failed     17s (x3 over 63s)  kubelet            Failed to pull image "index.docker.io/jor2/hello-world": rpc error: code = NotFound desc = failed to pull and unpack image "docker.io/jor2/hello-world:latest": failed to unpack image on snapshotter overlayfs: unexpected media type text/html for sha256:361849f1befca621043d13cca4e9bee74861754154556e149340a455e53d1d35: not found
  Warning  Failed     17s (x3 over 63s)  kubelet            Error: ErrImagePull
  Normal   BackOff    3s (x3 over 63s)   kubelet            Back-off pulling image "index.docker.io/jor2/hello-world"
  Warning  Failed     3s (x3 over 63s)   kubelet            Error: ImagePullBackOff

秘密看起来像:

apiVersion: v1
data:
  .dockerconfigjson: eyJhdXRocyI6IHsiaHR0cHM6Ly9pbmRleC5kb2NrZXIuaW8vdjEvIjogeyJ1c2VybmFtZSI6ICJVc2VybmFtZSIsICJwYXNzd29yZCI6ICJQYXNzd29yZCIsICJlbWFpbCI6ICJyYW5kb21AZW1haWwuY29tIiwgImF1dGgiOiAiVlhObGNtNWhiV1U2VUdGemMzZHZjbVE9In19fQo=
kind: Secret
metadata:
  creationTimestamp: "2022-04-25T18:59:03Z"
  managedFields:
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:data:
        .: {}
        f:.dockerconfigjson: {}
      f:type: {}
    manager: kubectl-create
    operation: Update
    time: "2022-04-25T18:59:03Z"
  name: regcred
  namespace: default
  resourceVersion: "270226"
  uid: bbb1310b-421a-4c93-8488-498e7a52095f
type: kubernetes.io/dockerconfigjson

知道我哪里出错了吗?

【问题讨论】:

  • 您的秘密实际上是什么样的?您显示一个 json 对象,但没有显示实际的秘密。你想部署什么命名空间?
  • 请注意hub.docker.comweb 用户界面,docker.io/jor2/hello-world 几乎可以肯定是 registry 版本
  • @TheFool 更新
  • 看,我知道你在努力变得可爱和炽热,因为互联网历史上从来没有人从 docker 注册表中拉出过,但是unexpected media type text/html 表示你仍然没有在听对我来说,或者按照页面上Docker Pull Command 侧边栏中的说明获取您的图像。如果你不能在本地 docker pull 它,那么即使有一些神奇的凭据,kubernetes 也无法拉取它
  • @mdaniel 我得到了它的工作,最终是我试图拉的特定 docker 图像的问题。

标签: kubernetes


【解决方案1】:

这是我的图片有问题,需要使用 pod 规范:

apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: jor2/hello-world:latest
  imagePullSecrets:
  - name: regcred

【讨论】:

    【解决方案2】:

    @jor2 我也有同样的问题,请问您的图片有什么问题以及如何解决?非常感谢

    【讨论】:

      猜你喜欢
      • 2019-03-03
      • 2021-12-01
      • 1970-01-01
      • 2020-07-24
      • 2020-07-18
      • 1970-01-01
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多