docker - K8s MiniKube 无法从 docker 读取图像并给出 I/O 错误
问题描述
嗨,我是 minikube/k8s 的新手,正在尝试在 pod 中设置第一份工作。我在 Windows 上运行并在拉取图像时不断出错。
我的 docker 已经有我在 job.yaml 中使用过的图像,但是 minikube 失败了
事件: 类型原因年龄来自消息 ---- ------ ---- ---- -------- 正常计划 28 秒 default-scheduler 成功将 default/say-something-blbwp 分配给 minikube 正常拉取 27s kubelet、minikube 拉取镜像“java” 警告 Failed 17s kubelet, minikube Failed to pull image "java": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1 192.168.67.65:53 上的 .docker.io:读取 udp 192.168.67.70:58499->192.168.67.65:53:i/o 超时 警告 Failed 17s kubelet, minikube Error: ErrImagePull Normal BackOff 17s kubelet, minikube Back-off pull image "java" 警告 Failed 17s kubelet, minikube Error: ImagePullBackOff
这是我的 job.yaml 文件
api版本:批处理/v1 种类:工作 元数据: 名称:说点什么 规格: 模板: 元数据: 名称:说点什么 规格: 容器: - 名称:说点什么 图片:java imagePullPolicy: IfNotPresent 命令:[System.out.println("ZXZAA:")] 重启策略:OnFailure
码头工人图像
存储库标签图像 ID 创建大小 hello-world 最新 bf756fb1ae65 7 个月前 13.3kB java 最新 d23bdf5b1b1b 3 年前 643MB
有人可以指导我缺少什么吗?我需要在注册表部分进行任何特定设置吗?
解决方案
为了解决 kubelet, minikube Error: ImagePullBackOff 我更改了 docker 设置,创建了 docker ID
重新启动 docker 桌面并使用资源 -> 网络 -> DNS 服务器 -> 手动 DNS 配置为 8.8.8.8 并从主机文件中删除过时的 Ips,如https://github.com/docker/for-win/issues/4884中所述# 之后它工作正常并且能够拉取图像
@David Maze 是对的,我们需要为 java 安装 openjdk,我们需要将我们的应用程序部署为映像。
@Wiktor 如果您想通过 K8s 设置 java 应用程序,您可以参考 https://www.oreilly.com/content/how-to-manage-docker-containers-in-kubernetes-with-java/
推荐阅读
- java - 如何将按钮拖放到 GridPane 上?
- python - 如果与 foreign_key_id 匹配,则计算 date_range 查询集中的项目总和并跳过其余部分
- reactjs - 如何验证传递给 Formik 中匿名组件的道具?
- python-3.x - 如何在循环中访问字典的元素?
- kubernetes - 警报管理器短信通知
- c - 如何在 C 中同时获取输入和打印内容
- asp.net-mvc - 发布项目后如何编辑 Startup.cs 文件?
- c# - 如何在android上读取触摸屏输入
- java - 如何通过另一个构造函数添加到数组列表?
- java - maven-checkstyle-plugin 中的变量 ${project.version} 来自子项目