本文档介绍可能导致 Pod 一直处于 ImagePullBackOff 状态的几种情形,以及如何通过排查步骤定位异常原因。请按照以下步骤依次进行排查,定位问题后恢复正确配置即可。
Dockerd 默认从 HTTPS 类型的 Registry 拉取镜像。当您使用 HTTP 类型的 Registry 时,请确保已将其地址添加到 insecure-registry 参数中,并重启或 reload Dockerd 使其生效。
当您使用 HTTPS 类型 Registry 且其证书属于自签发证书时,Dockerd 将会校验该证书,只有校验成功才可以正常使用镜像仓库。
为确保校验成功,需要将 Registry 的 CA 证书放置到以下位置:
/etc/docker/certs.d/<Registry:port>/ca.crt
若 Pod 未配置 imagePullSecret、配置的 Secret 不存在或者有误都会造成 Registry 认证失败,使 Pod 一直处于 ImagePullBackOff 状态。
若 Push 的镜像文件损坏,下载成功后也不能正常使用,则需要重新 push 镜像文件。
当节点上同时启动大量 Pod 时,可能会导致容器镜像下载需要排队。假设下载队列靠前位置已有许多大容量镜像且需较长的下载时间,则会导致排在队列靠后的 Pod 拉取超时。
默认情况下,kubelet 支持串行下载镜像。如下所示:
--serialize-image-pulls Pull images one at a time. We recommend *not* changing the default value on nodes that run docker daemon with version < 1.9 or an Aufs storage backend. Issue #10959 has more details. (default true)
必要情况下,为避免 Pod 拉取超时,可开启并行下载及控制并发。示例如下:
--Registry-qps int32 If > 0, limit Registry pull QPS to this value. If 0, unlimited. (default 5)
--Registry-burst int32 Maximum size of a bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding Registry-qps. Only used if --Registry-qps > 0 (default 10)
镜像本身不存在也会导致 Pod 一直处于 ImagePullBackOff 状态,可以通过 kubelet 日志进行确认。如下所示:
PullImage "imroc/test:v0.2" from image service failed: rpc error: code = Unknown desc = Error response from daemon: manifest for imroc/test:v0.2 not found
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,...
Go 团队 leader 兼核心开发者 Russ Cox 昨日已将 Go 泛型提案从 Active 移动至 L...
更换系统盘即更换ECS实例的操作系统。更换时会为ECS实例重新分配一块系统盘,此...
以下文章来源于工业互联网产业联盟 ,作者AII 在10月16日上午举办的2020工业互联...
建网站 用服务器还是用 虚拟主机 ?其实, 云服务器 和虚拟主机都可以搭建网站的...
2021年6月24日,中国信息通信研究院(以下简称“中国信通院”)在北京主办“2021...
在Python开发过程中,我们难免会遇到多重条件判断的情况的情况,此时除了用很多...
AP是目前组建小型无线局域网时最常用的设备,相当于一个连接有线网和无线网的桥...
用大数据赋能业务这个话题已经成为各个行业的老生常谈,大数据已渗透到当今社会...
1. 接口描述 接口请求域名: cvm.tencentcloudapi.com 。 本接口(ModifyInstance...