如果容器无法启动,则Kubernetes将显示错误状态为:CrashLoopBackOff。
通常,在以下情况下容器无法启动:
-
应用程序中存在错误,导致无法启动
-
你未正确配置容器
-
Liveness探针失败太多次
你应该尝试从该容器中检索日志以调查其失败的原因。
如果由于容器重新启动太快而看不到日志,则可以使用以下命令:
$ kubectl logs <pod-name> --previous
这个命令打印前一个容器的错误消息。
也可以参考下面的详细解析步骤进行排查:
1.检查应用自身是否存在参数、应用启动等配置问题
2.检查模板中镜像策略里是否配置了健康检查,如果健康检查配置有问题,就会导致容器一直重启。另外,如果资源配置中
cpu设置过小会使参数包解压缩时间过长,使得容器未能正常根据健康检查规则进行重启
3.检查容器运行内存占用是否超出配置的内存硬限制,如果超过内存限制会导致容器被重启,此时可以修改镜像策略中的资源设置,重新启动容器再试。
业界公认的配置为:内存硬限制:软限制=1:1,cpu硬限制:软限制=2:1