Menu
CoddyTech

崩溃循环

本课属于 Coddy Terminal 学习旅程的“Kubernetes 入门”单元。第 24 课,共 45 课。

容器应当持续运行。当其进程退出时,Kubernetes 会重启它(Pod 的 restartPolicy 默认值为 Always)。如果它反复退出,状态就会变为 CrashLoopBackOff,RESTARTS 列中的数值也会不断增加,并且每次重启前的暂停时间都会变长。

下面这个容器会打印一条消息,然后故意失败:

kubectl run crash --image=busybox -- sh -c "echo boom; exit 1"

-- 后面的内容是容器运行的命令。多次列出 Pod,观察状态从 Running 变为 Error,再变为 CrashLoopBackOff。

原因就在日志中:kubectl logs crash 会打印 boom,这是容器最后说的话。即使是没有任何可运行内容的镜像,比如一个普通的 busybox,也会立刻退出,最终进入同样的循环:Pod 需要一个持续运行的进程。

challenge icon

挑战

简单

使用 busybox 镜像创建一个名为 crash 的 Pod,并运行命令 sh -c "echo boom; exit 1"。打印它的日志,然后列出 Pod 两次,并观察状态达到 CrashLoopBackOff。

亲手试试

终端
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

Kubernetes 入门中的所有课

自己练习: Terminal 在线编辑器