Kubernetes 容器部署与管理全解析
1. 容器崩溃问题(CrashLoopBackOff)
容器崩溃是常见错误,原因多样,可能是启动失败(如配置错误),也可能是启动后很快崩溃。在 Kubernetes 部署中,任何终止的进程都视为“崩溃”,即便以成功退出码结束。对于 Deployment 管理的 Pod 中的容器,偶尔崩溃时 Kubernetes 会优雅处理,通过重启解决。例如,使用 kubectl get pods
可查看容器重启次数。
若容器在启动时或启动后迅速崩溃,会进入指数退避循环。Kubernetes 会在重启尝试之间引入指数级增长的延迟(如 10s、20s、40s 等),避免持续重启消耗系统资源。
容器首次崩溃时,状态可能为 RunContainerError
(启动出错)或 Completed
(正常退出)。多次崩溃后,状态会变为 CrashLoopBackOff
,此时需关注。容器崩溃可能是外部依赖(如数据库)未满足,应确保外部服务运行且可连接。
调试崩溃容器的步骤如下:
- 使用 kubectl describe pod $POD_NAME
查看事件线索。
- 查看容器日志,使用 kubectl logs -f $POD_NAME
。若想查看崩溃前的日志,可添加 --previous
或 -p
,即 kubectl logs -p $POD_NAME