[英]How to find the reason of a pod crashing?
有没有办法查看为什么 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
但这主要用于集群日志。
如果没有日志,则意味着您的应用程序在崩溃前没有生成任何日志。 您将需要重写应用程序,例如添加粉碎时的内存转储。
您提到pod
在重负载下会死亡,但统计数据显示只有 50% 的利用率。 您应该登录到 pod 并检查自己的负载,也许检查正在打开的文件数量,因为您可能达到了限制。
您可以阅读有关应用程序内省和调试的 Kubernetes 文档,并阅读使用 Init-Containers 调试 CrashLoopBackoffs 。
您还可以尝试在 Docker 中运行您的图像并在那里检查日志。 有一个关于日志和故障排除的很好的文档可用。
如果您提供更多详细信息,我们可能会更有帮助。
以下是我观察到的 crashloopbackoff 的一些明显原因:
您可以运行此脚本以查找命名空间中 pod 的可能问题: https : //github.com/dguyhasnoname/k8s-day2-ops/blob/master/namespace_scripts/debug_app_namespace.sh
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.