【问题标题】:How to resolve this issue ErrImageNeverPull pod creation status kubernetes如何解决此问题 ErrImageNeverPull pod 创建状态 kubernetes
【发布时间】:2021-02-20 01:54:16
【问题描述】:

我正在从驻留在主节点上的图像创建一个 pod。当我在主节点上创建要在工作节点上调度的 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 描述 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 是否会在工作节点上查找图像是否存在?谢谢

【问题讨论】:

  • 您的 pod 清单中是否指定了 imagePullPolicy: never?如果是这样,这就是它不尝试提取图像的原因。同样,您在那里指定图像的方式,对于大多数 k8s clsuters 会导致它在 Docker 集线器上查找该图像,而 AFAIK 它不存在。如果您希望它从不同的容器注册表中提取,您需要在其中提取注册表的主机名和端口。

标签: kubernetes kubectl kubernetes-pod kubernetes-deployment


【解决方案1】:

kubernetes在创建容器时,会先查看本地镜像,然后会尝试registry(默认docker registry)

您收到此错误是因为:

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

  • 你指定了imagePullPolicy: Never,所以你永远不会尝试从注册表下载图像

您解决这个问题的方法很少,但它们通常都会指示您在本地获取图像并正确标记。

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

一旦你得到图像,标记它并在部署中指定

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问题中

【讨论】:

    猜你喜欢
    • 2019-06-07
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    相关资源
    最近更新 更多