如何找到吊舱坠毁的原因



有没有办法解释为什么kubernetes pod在重负载下出现故障,状态为"craskLoopBackOff"?

我有一个HorizontalPodAutoscaler,它从不启动。在它的状态下,它总是显示低(低于50%(的cpu和内存使用率。

在pod中跟踪应用程序日志也不能提供任何见解。

尝试查看Kubernetes事件kubectl get events --sort-by='.lastTimestamp'

如果您没有从事件中得到任何有意义的东西,请转到特定节点并查看kubelet日志journalctl -u kubelet

要从pod获取日志,应该使用:

kubectl logs [podname] -p

您也可以执行kubelet logs,但这主要用于集群日志。

如果没有日志,则表示您的应用程序在崩溃前没有生成任何日志。你需要重写应用程序,例如在crush上添加内存转储。

您提到pod在高负载下正在消亡,但统计数据显示只有50%的利用率。你应该登录到pod并检查自己的负载,也许检查有多少文件被打开,因为你可能已经达到了极限。

您可以阅读Kubernetes关于Application Introspection和Debugging的文档,并使用Init Containers调试CrashLoopBackoff。

你也可以尝试在Docker中运行你的镜像并在那里检查日志。有一个很好的文档关于日志和故障排除可用。

如果您提供更多详细信息,我们可能会提供更多帮助。

以下是我观察到的crashloopbackoff的一些明显原因:

  1. 等待一些条件被完全填充,例如一些秘密,未通过健康检查等
  2. pod正在以爆发力或竭尽全力的方式运行QoS,并且由于上的资源不可用而被终止节点

您可以运行此脚本来查找命名空间中pod的可能问题:https://github.com/dguyhasnoname/k8s-day2-ops/blob/master/namespace_scripts/debug_app_namespace.sh

相关内容

  • 没有找到相关文章

最新更新