[英]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.