K8S集群中Pod资源处于ImagePullBackOff状态排查思路

举报
jiangxl 发表于 2022/06/16 00:44:14 2022/06/16
【摘要】 K8S集群中Pod资源处于ImagePullBackOff状态排查思路 文章目录 K8S集群中Pod资源处于ImagePullBackOff状态排查思路1.Pod资源处于ImagePullBac...

K8S集群中Pod资源处于ImagePullBackOff状态排查思路

1.Pod资源处于ImagePullBackOff状态的原因

ImagePullBackOff状态表示容器的镜像拉取失败,可能存在以下几点原因:

  • 拉取镜像时间较长导致超时,从而导致镜像拉取失败,部署完Docker后,一定要添加上阿里云的镜像加速器,否则拉取镜像是非常慢的,很容易就会导致镜像拉取失败。
  • 镜像配置有误,指定的镜像在公有仓库和私有仓库都不存在。
  • 镜像地址无法访问,需要排查网络方面的问题,检查是否将镜像的地址配置在了Docker中,如果是DockerHub中的镜像则不需要指定。
  • 配置镜像所在的私有仓库有误,私有仓库配置的不对,也会导致镜像拉取失败,检查是否登陆过私有镜像仓库。
  • Dockerfile制作的镜像有问题,导致不可用。

2.Pod资源处于ImagePullBackOff状态的排查思路

1)首先查看Pod资源的状态

# kubectl get pod

NAME                           READY   STATUS             RESTARTS   AGE
know-system-5495fdfdc5-jvcfb   0/1     ImagePullBackOff   0          49s

通过命令可以查询出当前Pod处于的状态,在ImagePullBackOff状态之前还会存在一个ErrImagePull的状态,看见这个状态就可以定位出该Pod的镜像没有拉取成功,从而出现了问题。

2)查看Pod资源异常状态的输出信息

# kubectl describe pod know-system-5495fdfdc5-jvcfb 

Events:
  Type     Reason       Age               From               Message
  ----     ------       ----              ----               -------
  Normal   Scheduled    32s               default-scheduler  Successfully assigned default/know-system-5495fdfdc5-jvcfb to k8s-node2
  Warning  FailedMount  31s               kubelet            MountVolume.SetUp failed for volume "default-token-fbknq" : failed to sync secret cache: timed out waiting for the condition
  Warning  Failed       21s               kubelet            Failed to pull image "aknow-system:v1": rpc error: code = Unknown desc = Error response from daemon: pull access denied for aknow-system, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
  Warning  Failed       21s               kubelet            Error: ErrImagePull
  Normal   BackOff      20s               kubelet            Back-off pulling image "aknow-system:v1"
  Warning  Failed       20s               kubelet            Error: ImagePullBackOff
  Normal   Pulling      6s (x2 over 29s)  kubelet            Pulling image "aknow-system:v1"

从输出信息中,我们可以获取到大量的排查线索,首先就是这句话Failed to pull image拉取镜像失败,紧接着看pull access denied for aknow-system这句话,这句话的意思就是说没有权限拉取aknow_system的镜像,在接着找线索 repository does not exist or may require 'docker login'注意这句话,意思说怀疑镜像的地址并不存在,要不我们尝试使用docker login命令登陆下。

从这一段话中我们就可以得出一个结论,导致该状态发送的问题点就在于以下两点:

  • 镜像地址填写的不正常,从而导致镜像拉取失败。

  • 镜像地址正确,这个镜像可能是私有仓库中的镜像,我们需要提前登陆完成认证才可以成功拉取。

3)问题解决过程

可以先在调度的Node节点中执行docker pull命令,验证镜像是否可以拉取。

然后再仔细观察镜像地址是否配置的有问题,再次执行拉取命令。

文章来源: jiangxl.blog.csdn.net,作者:Jiangxl~,版权归原作者所有,如需转载,请联系作者。

原文链接:jiangxl.blog.csdn.net/article/details/125275310

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。