【k8s】ImagePullBackOff 错误处理

1. 概述

ImagePullBackOff错误比较简单,镜像下载失败,要么网络设置有问题,要么没有设置镜像源,另外一个比较隐蔽的问题是,当你在集群环境下,假设有3个节点,那么这三个节点都要设置镜像源,因为 kubectl run命令默认可以在任一个节点上安装,而不是命令在哪个节点上执行!

另外如果是公司内网,无法连接镜像源,只能自己上传镜像时,切记,集群环境下也会存在问题,因为镜像需要拷贝到另外2个节点上,或指定节点安装。

指定节点安装参见【k8s in Action 笔记】 第三章 YAML描述文件创建pod(socat) 的 "3.5 使用标签和选择器来约束pod调度"章节

2. 问题复现

问题出现的现象是三节点集群环境下,第一个节点创建成功,后2个失败。

kubectl create -f nginx-deployment.yaml 执行之后,kubectl get pods 一致出现 ImagePullBackOff,一直无法执行成功,如下图,最下面的3个nginx-deployment-xxx:
在这里插入图片描述

红色框划大了,仅看最后三条

调查错误原因,在 master 服务器上面分别执行命令: kubectl describe pod xxx,查看三个nginx实例的报错信息:
在这里插入图片描述
可以看到报错信息:

Warning Failed 47m kubelet, 192.168.118.213 Failed to pull image “nginx:1.10”: rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled (Client.Timeout exceeded while awaiting headers)

原因是第一个服务器配置了docker的国内阿里云镜像,而后面两台服务器忘记了给docker配置国内镜像。
在这里插入图片描述
配置上国内镜像,然后执行:

systemctl daemon-reload
systemctl restart docker

在这里插入图片描述

参考

《ImagePullBackOff 错误处理》

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值