如何解决如何解决此问题ErrImageNeverPull吊舱创建状态kubernetes
我正在根据驻留在主节点上的图像创建容器。当我在主节点上创建要在工作节点上调度的Pod时,我得到Pod ErrImageNeverPull的状态
kind: Pod
metadata:
name: cloud-pipe
labels:
app: cloud-pipe
spec:
containers:
- name: cloud-pipe
image: cloud-pipeline:latest
command: ["sleep"]
args: ["infinity"]
Kubectl描述广告连播详细信息:
Type Reason Age From Message
- --- ------ ---- ---- -------
Normal Scheduled 15m default-scheduler Successfully assigned
default/cloud-pipe to knode
Warning ErrImageNeverPull 5m54s (x49 over 16m) kubelet Container image "cloud-
pipeline:latest" is not present with pull policy of Never
Warning Failed 51s (x72 over 16m) kubelet Error: ErrImageNeverPull
如何解决此问题。另外,我的问题是Kubernetes默认情况下是否会在工作节点上查找该映像是否存在?谢谢
解决方法
当kubernetes创建容器时,它首先查找本地映像,然后尝试注册(默认情况下为docker登录)
您收到此错误的原因是:
-
在您的节点上找不到本地图像。
-
您指定了
imagePullPolicy: Never
,因此您将永远不会尝试从注册表中下载图像
解决此问题的方法很少,但是所有这些方法通常都会指导您在本地获取图像并对其进行正确标记。
要在您的节点上获取图像,您可以:
-
从现有Dockerfile构建映像
一旦获得映像,请对其进行标记并在部署中指定
docker tag cloud-pipeline:latest mytest:mytest
kind: Pod
metadata:
name: cloud-pipe
labels:
app: cloud-pipe
spec:
containers:
- name: cloud-pipe
image: mytest:mytest
imagePullPolicy: Never
command: ["sleep"]
args: ["infinity"]
或者您可以配置自己的本地注册表,将标记的图像推送到其中,然后使用imagePullPolicy: IfNotPresent
。 @dryairship answer
另外,请确保对eval $(minikube docker-env)
图像使用imagePullPolicy: Never
,以防万一,如果您使用的是minikube(您尚未指定任何标签,但这会有所帮助)。有关Getting “ErrImageNeverPull” in pods问题的更多信息
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。