Pod 故障排查流程
問題描述
Pod commonadapter-service-6bb5c87ccd-mnh72 在 prd-forecast 命名空間中多次重啟,原因為記憶體不足 (OOMKilled)。
排查步驟與指令
1. 查看 Pod 狀態
指令:
kubectl get pods -n prd-forecast
說明: 檢查命名空間中的所有 Pod 狀態,確認目標 Pod 是否運行正常。
2. 描述 Pod 詳細資訊
指令:
kubectl describe pod commonadapter-service-6bb5c87ccd-mnh72 -n prd-forecast
說明: 獲取 Pod 的詳細資訊,包括狀態、容器、重啟次數、事件等。從輸出中發現:
- Pod 狀態:Running
- 重啟次數:5 次
- 最後狀態:Terminated,原因:OOMKilled
- 記憶體限制:4G
3. 查看相關事件
指令:
kubectl get events --field-selector involvedObject.name=commonadapter-service-6bb5c87ccd-mnh72 --sort-by=.metadata.creationTimestamp -n prd-forecast
說明: 嘗試查看與該 Pod 相關的事件,但命名空間中無事件記錄(可能已過期)。
4. 查看重啟前日誌
指令:
kubectl logs commonadapter-service-6bb5c87ccd-mnh72 --previous -n prd-forecast
說明: 獲取重啟前容器的日誌,分析導致 OOM 的原因。日誌顯示應用程式正在處理大量 ATP 數據計算,可能造成記憶體使用激增。
5. 下載日誌檔案
指令:
kubectl logs commonadapter-service-6bb5c87ccd-mnh72 --previous -n prd-forecast > previous_logs.txt
說明: 將日誌輸出重定向到檔案,便於下載和進一步分析。檔案儲存在工作目錄:d:\wpg\Fcst.BPaaS-Forecast-Backend\wpg-bpaas-commonadapter-services\previous_logs.txt
結論
Pod 重啟原因是記憶體不足,應用程式在處理大量數據時消耗過多記憶體。建議:
- 增加記憶體限制或優化應用程式效能
- 監控記憶體使用情況
- 檢查數據處理邏輯,避免一次性載入過多數據
日期
2025-12-11