是否有办法查看为什么kubernetes pod在高负载下失败并显示状态为“ craskLoopBackOff”?
我有一个HorizontalPodAutoscaler,它永远不会启动。在它的状态下,它总是显示低(低于50%)的CPU和内存使用率。
在窗格中收集应用程序日志也无法提供任何见解。
答案 0 :(得分:1)
尝试查看Kubernetes事件kubectl get events --sort-by='.lastTimestamp'
如果您没有从事件中得到任何有意义的信息,请转到特定节点并查看kubelet日志journalctl -u kubelet
答案 1 :(得分:0)
要从吊舱中获取日志,您应该使用:
kubectl logs [podname] -p
您也可以执行kubelet logs
,但这主要用于群集日志。
如果没有日志,则意味着您的应用程序在崩溃前未生成任何日志。您可能需要重写应用程序,例如在暗恋时添加内存转储。
您提到pod
在高负载下快要死了,但统计数据显示利用率只有50%。您应该登录到pod并检查您自己的负载,也许要检查正在打开多少文件,因为您可能已达到极限。
您可以阅读有关Application Introspection and Debugging的Kubernetes文档,并翻阅Debugging CrashLoopBackoffs with Init-Containers。
您还可以尝试在Docker中运行映像并在那里检查日志。有关于Logs and troubleshooting的不错的文档。
如果您提供更多详细信息,我们可能会有所帮助。
答案 2 :(得分:0)
以下是发生崩溃回退的一些明显原因,我观察到了
您可以运行以下脚本来查找命名空间中Pod的可能问题:https://github.com/dguyhasnoname/k8s-day2-ops/blob/master/namespace_scripts/debug_app_namespace.sh