如何调试“ImagePullBackOff”?

2024-04-01

突然间,我无法部署一些以前可以部署的映像。我得到以下 Pod 状态:

[root@webdev2 origin]# oc get pods 
NAME                      READY     STATUS             RESTARTS   AGE 
arix-3-yjq9w              0/1       ImagePullBackOff   0          10m 
docker-registry-2-vqstm   1/1       Running            0          2d 
router-1-kvjxq            1/1       Running            0          2d 

该应用程序只是无法启动。 Pod 未尝试运行容器。从活动页面,我得到了Back-off pulling image "172.30.84.25:5000/default/arix@sha256:d326。我已经验证我可以使用标签来提取图像docker pull.

我还检查了最后一个容器的日志。由于某种原因它被关闭了。我认为 Pod 至少应该尝试重新启动它。

我已经没有办法调试这些问题了。我还可以检查什么?


您可以使用 '描述 Pod' syntax

对于 OpenShift 使用:

oc describe pod <pod-id>  

对于普通 Kubernetes:

kubectl describe pod <pod-id>  

检查输出的事件。 就我而言,它显示Back-off pulling image unreachableserver/nginx:1.14.22222

在这种情况下图像unreachableserver/nginx:1.14.22222无法从互联网拉取,因为没有 Docker 注册表 unreachableserver 和镜像nginx:1.14.22222不存在。

注意:如果您没有看到任何感兴趣的事件,并且 Pod 已处于“ImagePullBackOff”状态一段时间(似乎超过 60 分钟),则需要删除该 Pod 并查看新 Pod 中的事件。

对于 OpenShift 使用:

oc delete pod <pod-id>
oc get pods
oc get pod <new-pod-id>

对于普通 Kubernetes:

kubectl delete pod <pod-id>  
kubectl get pods
kubectl get pod <new-pod-id>

示例输出:

  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  32s                default-scheduler  Successfully assigned rk/nginx-deployment-6c879b5f64-2xrmt to aks-agentpool-x
  Normal   Pulling    17s (x2 over 30s)  kubelet            Pulling image "unreachableserver/nginx:1.14.22222"
  Warning  Failed     16s (x2 over 29s)  kubelet            Failed to pull image "unreachableserver/nginx:1.14.22222": rpc error: code = Unknown desc = Error response from daemon: pull access denied for unreachableserver/nginx, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
  Warning  Failed     16s (x2 over 29s)  kubelet            Error: ErrImagePull
  Normal   BackOff    5s (x2 over 28s)   kubelet            Back-off pulling image "unreachableserver/nginx:1.14.22222"
  Warning  Failed     5s (x2 over 28s)   kubelet            Error: ImagePullBackOff

额外的调试步骤

  1. 尝试在计算机上手动拉取 docker 镜像和标记
  2. 通过执行“kubectl/oc get pods -o Wide”来识别节点
  3. ssh 到无法拉取 docker 镜像的节点(如果可以的话)
  4. 通过执行 ping 检查节点是否可以解析 docker 注册表的 DNS。
  5. 尝试在节点上手动拉取docker镜像
  6. 如果您使用的是私人注册表,请检查您的secret https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/存在并且秘密是正确的。您的秘密也应该位于同一名称空间中。谢谢swenzel https://stackoverflow.com/users/2677943/swenzel
  7. 某些注册中心设有限制 IP 地址访问的防火墙。防火墙可能会阻止拉取
  8. 一些 CI 使用临时 docker 机密创建部署。所以秘密会在几天后过期(您正在要求生产失败......)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何调试“ImagePullBackOff”? 的相关文章

随机推荐

  • document.execCommand() FontSize(以像素为单位)?

    如何使用以下命令将字体大小更改为 30px 例如 document execCommand This document execCommand fontSize false 30px 不起作用 因为在函数 execCommand 的第三个参
  • 在 Java 中执行身份验证加密的正确方法是什么?

    验证加密要求我们使用一些公认的标准来加密和验证消息 因此 我们对消息进行加密并计算消息的 MAC 以验证它没有被篡改 这个问题 https stackoverflow com questions 992019 java 256 bit ae
  • 如何使用 Xcode 6.3 Beta2 覆盖 Swift 中超类的 setter?

    我的 SuerClass 是UICollectionViewCell它有一个属性 var selected Bool 我的班级是 MyClass UICollectionViewCell func setSelected selected
  • 使用 Capistrano 部署 Rails 5.1 / Webpacker 应用程序

    我有一个 Ubuntu 服务器来部署我的 Rails 项目 在我的 Ubuntu 服务器中 我有 RVM 现在我想使用 Rails 5 1 和 webpacker 部署新项目 为了部署这个项目 我在我的 Ubuntu 服务器中安装了 NVM
  • 如何为 Android 发送库

    我想为 Android 开发一个库 我可以以什么形式运送 jar apk 还是其他 我应该如何做才能让其他开发人员可以在他们的应用程序中使用我的库 如果您的库是纯 Java 代码 则 JAR 就可以了 也许可以用文档等进行压缩 如果您需要资
  • 如何将 SVN 存储库移至新服务器

    我们想要将两台服务器合并在一起 为此 我们需要在 新 服务器上安装 SVN 然后移动我们在 旧 服务器上设置的所有存储库 这是一个容易做的操作吗 可能使用 TortoiseSVN 提供的 重新定位 选项 最好的方法是什么 现在也是重新组织存
  • Hibernate多态查询

    我有两个类 Person 和 Company 它们派生自另一个类 Contact 它们在两个表 个人和公司 中以多态形式表示 简化的类如下所示 public abstract class Contact Integer id public
  • 如何将两个数据帧与日期进行比较,返回匹配日期并为新数据帧中的每一行标记不匹配日期

    我有一个数据框 每行中的每个受试者都有多个测量日期 另一个数据框有每行中同一受试者的多个访问日期 还包括一些 NA 我想要的是提取与某个主题的访问日期匹配的测量日期 并标记不符合访问日期的测量日期 例如 使用 FALSE 或 99 并保持
  • 如何用另一个 GestureDetector 包装 GestureDetector 并在各处获取事件

    如果我有一个GestureDetector具有内部GestureDetector我该如何设置才能使两个检测器都收到点击事件 您可以在此处查看运行代码 https dartpad dev 37807a51a48e52eda81c24cf672
  • HTML 和属性编码

    我遇到了一个发表在 Meta SO 上 https meta stackexchange com questions 104230 attack of the double encoded hellip part n我很好奇未编码和编码的
  • MVC3 C# 导出到 Excel

    我正在尝试将数据从数据库导出到 Excel 2007 文件 我只想将 html 文件的标题更改为 excel 2007 文件 我将数据格式化为表格并将标题更改为 Response AddHeader Content Disposition
  • BuildException:无法在 Android Studio 3.1 Canary 6 中执行 aapt

    我在 gradle 构建过程中遇到这个问题 org gradle tooling BuildException Failed to execute aapt at com android build gradle internal res
  • Wifi和3G同时使用

    对于我的应用程序 我需要来自本地网络和互联网的数据 本地网络 Wifi 无法连接到互联网 因此我必须使用移动连接 例如 3G 但每当我连接到本地网络时 3G 就会停止 询问三星服务后 无法在 UI 中更改该设置 但他们无法告诉我是否有可编程
  • Kotlin - 将集合转换为数组列表

    我正在将 Java 应用程序转换为 Kotlin 在某一方面 它使用 apache IO 的 FileUtils listFiles 函数 这些返回集合 我在将集合转换 转换为 ArrayList 时遇到问题 val myFiles Fil
  • SQL - 从数据库中选择最“活跃”的时间

    非常密切相关SQL 从数据库中选择最 活跃 的时间跨度 https stackoverflow com questions 12938302 sql select most active timespan fromdb但不同的问题 我有一个
  • 如何让我的 NextJS 应用程序接受 otf 和 ttf 字体?

    我正在使用 NextJS 当我构建我的应用程序时 我的控制台返回给我 ModuleParseError 模块解析失败 意外字符 1 0 您可能需要适当的加载程序来处理此文件类型 我想知道出了什么问题 因为我已经构建了自定义 webpack
  • jquery动画位置百分比

    如何确定百分比位置 document ready function button toggle function slide animate top 100 1000 function slide animate top 0 1000 请建
  • Magento 的空白主题是否仍应用作主题基线(Magento 版本 1.7)?

    我发现的许多关于 Magento 主题开发的教程都建议从使用空白作为制作您自己的自定义主题的指南开始 这些文章很多都已经很老了 截至当前版本 1 7 情况仍然如此吗 附 除了 Magento 之外 是否有任何好的 相关的主题开发文章官方设计
  • 如何在 WPF 拖放过程中更新拖动装饰器的位置?

    我正在使用装饰器来显示被拖动元素的 幽灵 var adornerLayer AdornerLayer GetAdornerLayer topLevelGrid dragAdorner new DragAdorner topLevelGrid
  • 如何调试“ImagePullBackOff”?

    突然间 我无法部署一些以前可以部署的映像 我得到以下 Pod 状态 root webdev2 origin oc get pods NAME READY STATUS RESTARTS AGE arix 3 yjq9w 0 1 ImageP