当前位置: 首页 > news >正文

Kubernetes 实验踩坑记录:Pod 一直卡在 ContainerCreating,无法进入 CrashLoopBackOff 的排错全过程

目录

一、问题背景

二、问题分析过程

1 首先确认 Pod 状态

2 查看 Events 日志

三、问题原因

四、解决过程

五、验证 Pod 失败日志

六、CrashLoopBackOff 原理

七、本次实验总结

八、Kubernetes 排错小技巧

1 查看 Pod

2 查看详细信息

3 查看日志

4 查看系统组件

九、结语


一、问题背景

最近在做 Kubernetes 实验项目,需要创建一个故意失败的 Pod,观察 Kubernetes 的自动重启机制。

实验中创建的 Pod 使用如下命令:

command: - /bin/sh - -c - echo 'I am designed to fail!'; exit 1

按照实验要求,Pod 启动后应该不断失败并重启,最终状态会变为:

CrashLoopBackOff

于是我运行了:

watch kubectl get pods

理论上应该看到 Pod 进入CrashLoopBackOff状态。

但是实际情况却是:

NAME READY STATUS RESTARTS AGE crash-app-784d5bfb5c-75zq7 0/1 ContainerCreating 0 10m

Pod一直卡在 ContainerCreating,完全没有进入 CrashLoopBackOff。

这明显不符合实验预期,于是开始排错。


二、问题分析过程

1 首先确认 Pod 状态

先查看 Pod 详细信息:

kubectl describe pod crash-app-784d5bfb5c-75zq7

发现 Pod 状态为:

Status: Pending Reason: ContainerCreating IP: <none>

说明:

  • Pod 已经被调度

  • 但容器还没有成功启动

也就是说容器根本还没开始运行


2 查看 Events 日志

describe输出的最后部分发现了关键报错:

FailedCreatePodSandBox plugin type="calico" failed (add): error getting ClusterInformation: connection is unauthorized: Unauthorized

完整报错类似:

Failed to create pod sandbox: failed to setup network for sandbox plugin type="calico" failed connection is unauthorized

到这里基本可以确定问题:

Pod 网络创建失败。


三、问题原因

Kubernetes 创建 Pod 时,流程大致如下:

调度 Pod ↓ 创建 Pod Sandbox ↓ 配置网络 (CNI) ↓ 启动容器

而我的问题卡在:

CNI 网络插件

这里使用的是Calico 网络插件

报错:

plugin type="calico" failed connection is unauthorized

说明Calico 在访问 Kubernetes API 时认证失败,导致无法创建 Pod 网络。

因此:

  • Pod 没有 IP

  • 容器无法启动

  • 状态一直卡在 ContainerCreating

这也是为什么一直无法进入CrashLoopBackOff

因为:

容器压根没有启动。


四、解决过程

既然问题出在网络插件,就先检查系统组件。

查看 kube-system 命名空间:

kubectl get pods -n kube-system

确认核心组件状态:

calico-node calico-kube-controllers coredns kube-apiserver kube-scheduler

全部为:

Running

说明组件本身没有崩溃。

直接 重启 Calico Pod。

执行:

kubectl delete pod -n kube-system -l k8s-app=calico-node

再执行:

kubectl delete pod -n kube-system -l k8s-app=calico-kube-controllers

Kubernetes 会自动重新创建。

然后观察:

kubectl get pods -n kube-system

等它们全部变成:

Running


然后重新看你的测试 Pod

这时再次观察 Pod 状态:

kubectl get pods -w

终于看到状态变化:

ContainerCreating ↓ Running ↓ Error ↓ CrashLoopBackOff

最终结果:

NAME READY STATUS RESTARTS crash-app-784d5bfb5c-75zq7 0/1 CrashLoopBackOff 3

实验目标成功达成。


五、本次实验总结

这次实验最大的收获是理解了Pod 创建的完整流程

调度 ↓ 创建 Sandbox ↓ 配置网络 ↓ 启动容器 ↓ 执行程序

如果 Pod 卡在:

ContainerCreating

通常是:

  • CNI 网络问题

  • Volume 挂载失败

  • 镜像拉取失败

而如果 Pod 状态是:

CrashLoopBackOff

则说明:

  • 容器已经成功启动

  • 但程序执行失败

  • Kubernetes 正在不断重启容器


六、Kubernetes 排错小技巧

遇到 Pod 异常时,推荐排查顺序:

1 查看 Pod

kubectl get pods

2 查看详细信息

kubectl describe pod POD_NAME

重点关注:

Events


3 查看日志

kubectl logs POD_NAME

4 查看系统组件

kubectl get pods -n kube-system

七、结语

这次实验虽然只是一个简单的 CrashLoopBackOff 示例,但在排错过程中让我更清楚地理解了:

  • Kubernetes Pod 创建流程

  • CNI 网络插件的作用

  • CrashLoopBackOff 的触发机制

http://www.jsqmd.com/news/439315/

相关文章:

  • 记一次SQL server2008 数据库事务日志已满,导致程序崩溃排查过程
  • 医院成本核算系统建设思路与优质厂商推荐指南 - 业财科技
  • 深圳PCB制板厂家推荐,性价比高口碑好
  • Java小白求职者如何应对互联网大厂技术面试:场景化问题解析与解答
  • 2026年3月玻璃钢冷却塔厂家最新推荐,耐腐蚀使用寿命长 - 品牌鉴赏师
  • JVM脑图
  • 2026年3月离心液下泵厂家推荐,专业制造与品牌保障口碑之选 - 品牌鉴赏师
  • 北京上门回收找记录者商行,全品类上门收购,闲置老物轻松变现 - 品牌排行榜单
  • 别扔!天虹提货券余额用不完=白扔钱?可可收1分钟盘活,便捷又靠谱 - 可可收
  • coding plan对比,deepseek、字节、阿里、智谱、kimi 等coding plan 对比
  • 2026年3月工程消防设计公司最新推荐,全流程工程配套服务 - 品牌鉴赏师
  • openclaw喂饭教程!在 Linux 环境下快速完成安装、初始化与 Web UI 配置
  • DC逻辑综合及优化
  • [Linux]基于PVE + Ubuntu 24.04 server 搭建Nextcloud网盘
  • 2026年3月法兰盘厂家推荐:聚焦企业综合实力与核心竞争力 - 品牌鉴赏师
  • C#篇1 输入输出流, 值类型, 值类型转换
  • Ubuntu24安装ClaudeCode
  • 2026学历提升、成人自考机构TOP5排行榜:硬核测评+避坑指南,职场人升本不踩雷 - 深度智识库
  • 别再浪费!支付宝立减金用不上?正规渠道这样处理更省心 - 可可收
  • 针对 WSL 环境的特殊处理(如果你用的是 Windows 子系统)
  • 2026京津冀卡座床头软包新选择,免费上门服务公司一览,专业沙发翻新/卡座床头软包,卡座床头软包品牌有哪些 - 品牌推荐师
  • 微信立减金回收陷阱频发!教你3步避坑,认准合规渠道更安心 - 可可收
  • 盘点河南性价比高的短视频推广公司,企业抖音代运营哪家强 - 工业推荐榜
  • 如何审计域控制器登录活动?
  • 2026年3月冬阴功调味粉供应商权威推荐,技术实力与市场口碑深度解析 - 品牌鉴赏师
  • 手动安装GPU版本PyTorch
  • 2026年3月,扬州考研生如何甄选高性价比辅导机构? - 2026年企业推荐榜
  • 2026年3月四川西嘉助听器公司权威推荐,高性能与可靠性兼具优质品牌 - 品牌鉴赏师
  • 基本子串结构
  • 2026年3月管道离心泵厂家推荐,专业制造与品牌保障口碑之选 - 品牌鉴赏师