0

0

Pod 一直 ContainerCreating 卡住,describe pod 显示 imagePullBackOff 之外的原因

冷炫風刃

冷炫風刃

发布时间:2026-01-18 18:41:01

|

885人浏览过

|

来源于php中文网

原创

Pod卡在ContainerCreating状态的常见原因有五类:①Init容器失败;②Volume挂载失败;③CRI层(如containerd)创建sandbox失败;④CNI网络配置异常;⑤SecurityContext或SELinux限制触发拒绝。

pod 一直 containercreating 卡住,describe pod 显示 imagepullbackoff 之外的原因

Pod 卡在 ContainerCreating 状态,且 kubectl describe pod 显示的不是常见的 ImagePullBackOff,而是其他原因,说明问题出在镜像拉取之后、容器真正启动之前的阶段。这类情况往往更隐蔽,需要逐层排查初始化环节。

Init 容器失败(Init:Error 或 Init:CrashLoopBackOff)

如果 Pod 定义了 initContainers,Kubernetes 会严格按顺序执行它们,全部成功后才启动主容器。只要任一 init 容器退出非 0 状态、崩溃或超时,Pod 就卡在 ContainerCreating,describe 输出中会显示类似 Init:ErrorInit:CrashLoopBackOff,而非主容器的状态。

  • 运行 kubectl logs --all-containers --prefix 查看所有容器(含 init)的日志
  • kubectl get pod -o wide 确认 Pod 调度到哪个节点,再登录该节点检查 journalctl -u kubelet -n 100 --no-pager,常能发现 init 容器因权限、挂载、网络或命令不存在等失败的具体错误
  • 常见陷阱:init 容器用了 alpine 镜像但执行了 bash 脚本(alpine 默认无 bash)、尝试写入只读路径、依赖 ConfigMap/Secret 未就绪

Volume 挂载失败(如 NFS、CSI 插件未就绪、PV/PVC 绑定异常)

当 Pod 声明了 volume(尤其是 network storage 类型),kubelet 在启动容器前需先完成挂载。若挂载卡住或失败(例如 NFS 服务不可达、CSI driver Pod 未运行、StorageClass 动态供给超时),Pod 就会滞留在 ContainerCreating,describe 中可能只显示 Waiting for volumes to attach or mount,或事件里出现 MountVolume.SetUp failed

Lyrics Generator
Lyrics Generator

免费人工智能歌词生成器和人工智能歌曲作家

下载
  • 检查 PVC 状态:kubectl get pvc 是否为 Bound;如是 Pending,用 kubectl describe pvc 看事件原因(如 StorageClass 不存在、配额不足)
  • 确认对应 PV 是否存在且状态正常;若用 CSI,检查 kubectl get csidriverkubectl get pods -n kube-system | grep csi
  • 在 Node 上手动测试挂载:比如 showmount -e mount -t nfs4 :/path /mnt/test,验证底层存储连通性

Kubelet 无法创建容器运行时沙箱(CRI 层问题)

即使镜像已存在、volume 已挂载,kubelet 调用容器运行时(如 containerd 或 dockerd)创建 sandbox 容器时仍可能失败。此时 describe 通常无明确错误,事件里可能只有模糊的 Failed to create pod sandbox,需查 kubelet 日志定位。

  • 登录 Pod 所在 Node,执行 sudo crictl ps -a | grep (containerd)或 docker ps -a | grep (dockershim),看是否有残留的 pause 容器或异常状态
  • 检查 containerd 日志:sudo journalctl -u containerd -n 200 --no-pager,常见报错如 failed to load cni configno available IP addresses(CNI 分配失败)、permission denied on /run/containerd
  • CNI 是高频雷区:确认 /etc/cni/net.d/配置文件存在且格式正确,/opt/cni/bin/ 中插件二进制可执行,Calico/Flannel 等 CNI Pod 是否全 Running

SecurityContext 或 SELinux 限制触发拒绝

当 Pod 或容器设置了 securityContext(如 runAsUserseLinuxOptionsprivileged: true),而节点策略或内核模块不满足时,容器运行时可能静默拒绝创建 sandbox。describe 不报具体错误,但 kubelet 日志会出现 failed to create containerd taskpermission denied 类提示。

  • 临时去掉 securityContext 字段测试是否恢复,快速验证是否为此类问题
  • 在 Node 上检查 SELinux 状态:getenforce,若为 Enforcing,查看 sudo ausearch -m avc -ts recent 是否有拒绝日志
  • 对 privileged 容器,确认 kubelet 启动参数含 --allow-privileged=true(v1.26+ 已废弃,需通过 PSP 或 PodSecurityPolicy 替代)

相关专题

更多
scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

187

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

280

2023.10.25

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

249

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

494

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

399

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

437

2024.04.08

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

24

2025.12.22

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

24

2025.12.22

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

68

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.4万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号