目次

k8sでRunning以外のpodを一括削除するワンライナーコマンド


目次

GEK等のKubernetes環境でノードのリソースが足りなかった場合にPodが適宜Evictedされていくが、その時にPodが再起動ではなく、新規に作成されるとEviectedされたゴミのようなPodのリソースが残り続ける。

放置しているとkubectl get poでの見通しが悪くなるし、(EvictedされたPods自体も)リソースも地味に消費しているようである。

大量になりすぎたので、どうやって消そうかと思ったが以下のようなワンライナーを書いて対応することにした。

1
kubectl get pods | awk '{if ($3 != /Running/) system ("kubectl delete pods " $1)}'

ちなみに確認できただけで

1
2
3
4
5
Evicted
ContainerStatusUnknown
Error
Completed
CrashLoopBackOff

あたりのステータスでゴミPodが残っていた。