Pod 故障排查流程

問題描述

Pod commonadapter-service-6bb5c87ccd-mnh72prd-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