创建部署对象时出现“ErrImagePull”错误

问题描述 投票:0回答:1

我正在尝试使用

kubectl create deploy demo-backend --image docker.io/myrepe/myimage:1.0.0

创建一个 kubernetes 部署对象

然而,得到

ErrImagePull error:

Events:
  Type     Reason     Age               From               Message
  ----     ------     ----              ----               -------
  Normal   Scheduled  21s               default-scheduler  Successfully assigned default/demo-backend-54c679bc45-t5hz9 to worker1
  Normal   BackOff    19s               kubelet            Back-off pulling image "docker.io/myrepe/myimage:1.0.0"
  Warning  Failed     19s               kubelet            Error: ImagePullBackOff
  Normal   Pulling    5s (x2 over 20s)  kubelet            Pulling image "docker.io/myrepe/myimage:1.0.0"
  Warning  Failed     4s (x2 over 19s)  kubelet            Failed to pull image "docker.io/myrepe/myimage:1.0.0": reading manifest 1.0.0 in docker.io/myrepe/myimage:1.0.0 requested access to the resource is denied

该镜像是公共镜像,我可以直接使用

docker pull myrepe/myimage:1.0.0

拉取镜像



docker kubernetes docker-compose dockerfile
1个回答
0
投票

您遇到的错误表明,由于访问限制,kubernetes 无法从 docker 注册表中提取镜像。虽然您可以直接使用 docker pull 拉取镜像,但 kubernetes 需要正确的身份验证才能访问镜像。缺少凭据将导致访问被拒绝错误,从而阻止提取映像。

检查以下两个故障排除步骤:

  1. 如果您看到请求访问资源被拒绝 - 消息,则您需要提供注册表凭据,以便 Kubernetes 可以拉取映像。

    为此,您必须创建一个包含您的 registry 用户凭据的 Kubernetes 密钥:

    $ kubectl 创建秘密 docker-registry docker-registry-credentials

    --docker-server=https://index.docker.io/v1/ --docker-username=用户 --docker-password=密码 [电子邮件受保护]

    上面显示的命令将创建一个名为 docker-registry-credentials 的机密。接下来,您必须调整 Pod 的清单。因此,它引用了spec.imagePullSecrets字段中的秘密:

    api版本:v1种类:Pod元数据:名称:demo-pod规范:容器:-名称:nginx图像:nginx:最新imagePullSecrets:-名称:docker-registry-credentials

    Kubernetes 现在在拉取 Pod 镜像时将使用您的密钥中的凭据。您的节点将正确地向镜像注册表进行身份验证,允许拉取镜像,并修复 ImagePullBackOff 错误。

    1. 导致错误的另一个原因可能是容器注册表和 Kubernetes 集群之间的网络连接。如果防火墙阻止连接并检查相应的端口是否为出站流量打开,则 Kubernetes 可能无法从容器注册表下载映像。请参阅 Shahar Azulay 的 地面覆盖文档 Kubernetes ImagePullBackOff:它是什么以及如何修复它 了解更多信息。

    注意: 要在 Kubernetes 故障排除例程中修复 ImagePullBackOff 错误,请首先检查应用程序清单。确认映像名称、标签和/或摘要值已正确配置,并且它们与容器注册表的配置相匹配。

© www.soinside.com 2019 - 2024. All rights reserved.