当前位置: 首页 > 知识库问答 >
问题:

如何解决此问题ErrImageNeverPull pod创建状态kubernetes

裴意
2023-03-14

我正在从驻留在主节点上的映像创建一个 Pod。当我在主节点上创建一个容器以在工作线程节点上调度时,我得到的容器状态为错误图像取消

kind: Pod
metadata:
   name: cloud-pipe
   labels:
      app: cloud-pipe
spec:
   containers:
     - name: cloud-pipe
       image: cloud-pipeline:latest
       command: ["sleep"]
       args: ["infinity"]

Kubectl描述pod详细信息:

   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默认情况下会在worker节点上查找图像的存在吗?。谢谢

共有1个答案

马才
2023-03-14

当 kubernetes 创建容器时,它首先查看本地映像,然后尝试注册表(默认情况下为泊坞站注册表)

您收到此错误,因为:

> < li>

在您的节点上本地找不到您的图像。

您指定的映像取消策略:从不,因此您永远不会尝试从注册表下载映像

有几种方法可以解决这个问题,但它们都指导您在本地获取图像并正确标记。

要在节点上获取映像,您可以:

>

  • 将图像从一个节点复制到另一个节点

    从现有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"]
    

    或者,您可以配置自己的本地注册表,将标记图像推入其中,并使用<code>imagePullPolicy:IfNotPresent</code>。更多信息请访问@dryairship answer

    另外,如果您使用minikube,请确保对< code > imagePullPolicy:Never 图像使用< code > eval $(minikube docker-env)(您尚未指定任何标签,但这可能会有所帮助)。在pods问题中获取“ErrImageNeverPull”的更多信息

  •  类似资料:
    • null HTTP状态500-内部服务器错误 请解决这个错误,我也尝试了java JDK6版本,但它不起作用

    • 我尝试用创建react app。它给了我以下错误:

    • 我是python的新手。我使用anaconda Jupiter笔记本,我尝试使用一个名为weka的模块,我用pip安装了它。但现在我发现了这个错误: 文件“C:\ProgramData\Anaconda3\lib\site packages\IPython\core\interactiveshell.py”,第2961行,运行代码exec(代码obj、self.user、self.user) Fi

    • 问题内容: 下面的程序引发NullPointerException。在Log cat中,它显示: 单击该按钮时,它不会进入Mousefragment类。我试图解决它,但是我不能-如何解决这个问题? 编辑 单击该按钮多少次,该异常随同invalid_ip Toast消息一起显示 问题答案: 如前所述,您的问题询问如何解决此问题。 您需要弄清楚在哪里抛出。为此,请查看堆栈跟踪以查看引起问题的行。然后,

    • 问题内容: 我在做一个 用。我有我的输出。有人可以帮我吗?谢谢。 sendMailServlet代码: 在GlassFish 2.1上的输出: 问题答案: 您需要实施一个自定义 现在在 另请查看JavaMail常见问题解答

    • 这个错误显示在logcat-java中。lang.NoSuchMethodError:没有静态方法zzce(Landroid/content/Context;)V类内Lcom/google/android/gms/common/GoogleAppAvailability;或者它的超类(声明'com.google.android.gms.common.GoogleAppAvailability'出现