← 中文资源

简体中文版本

Kubernetes — ImagePullBackOff

从 Pod 事件和镜像仓库认证诊断 ImagePullBackOff,覆盖错误标签、缺失拉取密钥、架构不匹配和限流。

阅读英文原文

事件会指出故障类别

ImagePullBackOff 表示 kubelet 尝试拉取镜像并反复失败。kubectl describe pod 会显示确切错误:unauthorized 指向凭证,manifest unknown 指向不存在的标签,no matching manifest 指向架构不匹配。要修复类别,而不是症状。

kubectl describe pod api-7d9f -n prod | sed -n '/Events:/,$p'

私有仓库

Pod 只能使用其 spec 或 service account 引用、且位于同一 namespace 的 imagePullSecret。确认 secret 存在、包含正确的 registry host 和凭证,并挂到 Deployment 使用的 service account 上。轮换过期凭证,避免跨 namespace 复制 secret。

标签与架构

可变标签可能指向与测试时不同的镜像。需要可复现性时,应按 digest 部署。混合架构集群要发布 multi-arch manifest;只有 amd64 的镜像在 arm64 节点上会因 manifest 错误失败。要检查 manifest,而不是假设标签可移植。

验证干净拉取

删除 Pod 让控制器重建,或用相同镜像和 secret 运行临时 Pod。确认镜像 digest 与预期构建一致,Pod 变为 Ready。某个节点上的缓存镜像可能掩盖另一个节点上的仓库或凭证问题。