遇到一個pod無法刪除的問題


  • 對服務進行重啟后發現pod狀態一直是Terminating
    image

  • 查看pod詳情

Events:
  Type     Reason         Age                     From     Message
  ----     ------         ----                    ----     -------
  Warning  FailedKillPod  3m24s (x81 over 5h23m)  kubelet  error killing pod: [failed to "KillContainer" for "xxxxx-xxx" with KillContainerError: "rpc error: code = Unknown desc = operation timeout: context deadline exceeded", failed to "KillPodSandbox" for "688342f1-f270-493e-ae3b-59bf0272a1df" with KillPodSandboxError: "rpc error: code = DeadlineExceeded desc = context deadline exceeded"]

image

  • 處理過程
    網上查了資料,說是查看docker和kubelet狀態之類,回到環境查看發現kubelet狀態無法查看,不多docker服務顯示運行正常的。有文檔說是要重啟容器,無奈根據報錯pod未找到容器。
Unit kubelet.service could not be found.

最后受到floud文章啟發,對故障pod進行強制刪除。成功解決問題。

  • 強制刪除Terminating狀態的pod
    刪除前先將deployment調度為0。
kubectl -n <ns> delete pod foo --grace-period=0 --force
  • 問題分析
最近又遇到了pod無法刪除,資源無法調度的問題。原因是其中一個集群節點意外脫離集群控制,所以在故障節點調度的服務全部意外關閉,無法正常重新調度。
像這種情況不應該直接進行強制刪除。需要嘗試將故障節點恢復到集群中。意外關閉的服務會自動恢復啟動。
否則不問緣由的強制刪除會將整個集群置於不安全狀態中。安全生產無小事。
  • 參考文檔
https://www.cnblogs.com/floud/p/10620783.html
http://docs.kubernetes.org.cn/618.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM