kubernetes雜談(一)清除狀態爲Evicted的pod

2020-08-09 22:08:27

一    現象引入

使用'kubectl get pods --all-namespaces', 發現很多'pod的狀態爲evicted'

原因

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

注意: 即使叢集'狀態恢復',eviction狀態的pod會'在系統中存在',需要'手動刪除'  --> 只是影響美觀

解決方案

排查'資源和異常原因',防止新的驅趕產生  --> 結合'journal -u kubelet'

使用如下命令刪除舊驅趕的遺留

需求:刪除狀態爲Evicted的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

分析:深層次的原因