标准答案
- 先看 Pod events 中的完整仓库错误,再确认 image 引用、registry、tag/digest、节点架构和网络路径。
- 私有仓库要检查 imagePullSecrets、ServiceAccount、证书、节点身份和仓库权限。
- 多架构镜像、代理、DNS、仓库限流和节点磁盘空间都可能造成部分节点失败。
- 修复后验证新 Pod 在目标节点真正拉取并启动,保留镜像 digest 和发布记录。
题目解析
ErrImagePull 是一次拉取失败,ImagePullBackOff 表示 kubelet 对后续尝试退避;原因可能是仓库地址、tag/digest、节点架构、DNS/TLS、代理、限流或凭据。开发机能拉取只说明开发机身份和网络可用,不能代表目标节点。
应从 Pod events 读取完整错误,确认 image 引用、节点平台、imagePullSecrets/ServiceAccount、仓库权限、证书、磁盘和网络。修复后在实际目标节点验证拉取、digest、启动和滚动发布,不要把密码写进镜像、命令行或日志。
常见误区
- 误区:只改 tag 不看 events。改正:先读仓库返回的完整错误,再区分名称、权限、网络、架构和空间问题。
- 误区:把仓库密码写在镜像或命令行。改正:使用 imagePullSecrets、节点身份或短期凭据,并限制审计范围。