首页/云/Kubernetes 速查/ContainerCreating 长时间卡住
集群运维与排障54 条

ContainerCreating 长时间卡住

容器已分配但没起来:多为 CNI 网络分配失败、卷挂载未完成或镜像仍在大镜像解压,事件与 kubelet 日志能给出区分。

Kubernetes 速查云更新于 2026-10-13

长时间创建中是什么

对象已经被分到某台节点,但容器迟迟没有真正跑起来。这一步涉及三件事:为对象准备网络沙箱、把存储卷挂载进去、把镜像拉下来并解压。任何一环没完成,都会停在这个状态。它与调度无关——调度早已完成,问题发生在节点侧。

为什么老对象正常新对象不行

典型现象是同一节点上早就运行着的实例一切正常,新创建的实例却一直卡住。这说明节点本身能用,但某个可分配资源耗尽了:网络地址池没有余量、插件自身异常、或者节点磁盘写满导致无法准备沙箱。排查重点因此在节点侧的资源与插件状态,而不是业务镜像。

基本信息

适用环境任何 Kubernetes 发行版,属于对象生命周期的一个阶段
已完成的步骤调度,节点已经确定
未完成的步骤网络准备、卷挂载、镜像下载与解压
关键证据对象事件与节点侧组件日志
常见诱因网络插件异常、地址池耗尽、卷挂载阻塞
影响范围同一节点上的新对象都会受影响

典型使用场景

  • 扩容卡住:新实例迟迟不启动,业务容量上不去
  • 网络插件异常:插件组件重启或配置损坏导致沙箱无法建立
  • 地址池耗尽:地址分配用完,新对象拿不到地址
  • 卷挂载阻塞:存储接口无响应或卷正在从其他节点分离
  • 镜像过大:大镜像下载与解压耗时较长,看起来像卡住
  • 节点磁盘写满:无法写入容器层,准备流程直接失败

排查步骤

排查步骤
kubectl describe pod web-x | grep -iE 'warning|failed|sandbox'    # 事件里的关键线索
kubectl get pod web-x -o jsonpath='{.status.containerStatuses[*].state}'   # 容器状态细节
kubectl get pods -A -o wide --field-selector spec.nodeName=node-1 | grep -v Running   # 同节点其他对象
kubectl get pods -n kube-system -o wide                            # 网络插件是否就绪(在节点上执行下面两条)
# journalctl -u kubelet --since '10 min ago' | grep -iE 'sandbox|network|cni' | tail -30

现象与诱因对照

现象可能诱因验证方向
事件提到沙箱建立失败网络插件异常或地址耗尽查看插件状态与地址余量
事件提到挂载失败存储卷不可用或正在分离确认卷状态与附加情况
无明显事件但一直等待镜像下载与解压耗时观察节点磁盘与网络吞吐
同节点新对象全部卡住节点侧资源或插件问题先处理节点再重建对象
网络插件未就绪或地址池耗尽时,节点上已有对象表现正常而新对象长期卡住,容易误判为业务镜像问题。
反复删除重建不会解决节点侧的问题,还会丢掉现场证据,应先看清事件再决定动作。

易错点

  • 反复删除重建:根因在节点侧时新对象依旧卡住,还会丢失现场信息
  • 忽略沙箱建立失败这条事件:它直接指向运行时与网络插件,是最有价值的线索
  • 只查业务对象不看节点状态:先确认同节点其他新对象是否同样异常,能立刻缩小范围
  • 把等待当成卡死:大镜像下载解压本身耗时较长,用节点磁盘与网络吞吐判断是否在推进

数据来源与参考

  • Kubernetes 官方文档 · 集群网络与 CNI
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌