【问题标题】:ImagePullBackOff ErrorImagePullBackOff 错误
【发布时间】:2018-03-08 14:33:12
【问题描述】:

我在基于 Windows 的机器上使用 Minikube。在同一台机器上,我也有 docker-machine 设置。

我已将 docker 客户端指向 minikube 的 docker 环境。这样,就可以看到 Kubernetes 内部的 Docker 环境了。

没有问题,我可以从 Minikube VM 构建 docker 镜像和运行 docker 容器。但是,当我尝试通过 kubectl(来自 PowerShell)启动任何 docker 容器时,它主要无法启动,就好像 kubectl 由于以下错误找不到 docker 映像一样 -

无法提取图像“图像名称”:rpc 错误:code = Unknown desc = 来自守护程序的错误响应:找不到存储库“image-repo-name”: 不存在或没有拉取访问错误同步 pod

我不知道缺少什么。如果“docker run”可以访问镜像为什么“kubectl”不能呢?

这是我的 Dockerfile:

FROM node:4.4
EXPOSE 9002
COPY server.js .    
CMD node server.js

【问题讨论】:

  • 那个 "repository "image-repo-name" 听起来很可疑。你能分享更多,例如 dockerfiles,你使用的确切 kubectl 命令吗?看起来你的 minikube VM 看不到你的镜像存储库码头机器设置。
  • 使用 Dockerfile 更新了原始线程。看来,问题是 docker 图像没有 David Dehghan 指出的明确标签名称
  • 附带说明,获得更纤薄的图像,如 4.x-alpine。最好立即使用节点 8,但无论如何,纤细的图像会大大减少最终结果的大小。
  • 谢谢,同意使用较轻的图像。默认情况下,Alpine 图像没有安装 bash。所以它必须被包括在内。

标签: minikube


【解决方案1】:

确保 yaml 中的图像路径正确。该图像应该存在于您的本地计算机上。它应该用一个不是“最新”的数字命名

在你的部署 yaml 中有这个:

    image: redis:1.0.48

run "> docker images" 以查看您机器上的图像列表。

【讨论】:

  • 感谢 David Dehghan,正如您所描述的,这是 docker 映像没有“最新”以外的显式标签的问题。当我使用像“v0”这样的数字时,kubectl 可以抓取图像并且我看不到任何图像 - ImagePullBackOff 错误。但是,我确实看到了 - CrashLoopBackOff 错误。
  • 运行“kubectl describe pods node-test-app-766b7bbd55-xlpn4”产生以下输出(仅添加部分) - 状态:等待原因:CrashLoopBackOff 最后状态:终止原因:ContainerCannotRun 消息:oci 运行时错误:container_linux.go:262:启动容器进程导致“exec:\”deployment\”:$PATH 中找不到可执行文件退出代码:127 Dockerfile 中的“COPY”命令似乎有问题。虽然不知道确切的答案。
  • 我发现了这个问题,我没有在PATH环境变量中添加“部署”可执行文件是我的错误。
猜你喜欢
  • 2021-01-08
  • 1970-01-01
  • 1970-01-01
  • 2019-07-08
  • 2020-03-24
  • 2021-10-30
  • 1970-01-01
  • 2019-03-03
  • 2020-04-02
相关资源
最近更新 更多