k8s--pod的狀態為evicted


使用kubectl get pods, 發現很多pod的狀態為evicted。
k8s本來跑的好好的,突然發現上面的服務都停了,然后查看發現pod狀態變了,網上發現說是資源不足導致的,然后瘋狂查找。

1.查看內存情況,命令:free -g ,發現沒問題

2.查看內存情況,命令:top ,發現沒問題

3.查看硬盤情況,命令:df -lh,發現硬盤沒問題,但啟動的docker鏡像有問題!!!!!

繼續查找發現是由於啟動的docker占用的空間大於85%導致掛掉的。

原因

eviction,即驅趕的意思,意思是當節點出現異常時,kubernetes將有相應的機制驅趕該節點上的Pod。
多見於資源不足時導致的驅趕。

解決方案

排查資源和異常原因,防止新的驅趕產生。

然后查看docker ps -a,發現有很多已經停止的容器,就是這里!!!!!!

刪除掉這些不用的,命令:docker container prune

此時資源問題已經解決。

還需要把evicted的pod給刪掉,由於每個命名空間下都有,所有需要使用腳本循環操作,如下:

kubectl get pods | grep Evicted | awk ‘{print $1}’ | xargs kubectl delete pod

#!/bin/bash

for ns in `kubectl get ns | awk 'NR>1{print $1}'`
do
      kubectl get pods -n ${ns} | grep Evicted | awk '{print $1}' | xargs kubectl delete pod -n ${ns}
done


免責聲明!

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



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