LoginSignup
7
0

More than 5 years have passed since last update.

k8s の 異常終了した pods を削除する

Posted at

k8s のダッシュボードを使ってると Pods などをみるにはすごく便利なんだけど,
異常終了したジョブが延々と残っていて,不要だから削除したいなと思ったのがきっかけです.
自分が調べたところでは, kubectl のコマンドに該当するものがなかったので,参考になれば幸いです.
(適切なやり方をご存知の方はコメントに記述して頂けるとめちゃめちゃ嬉しいです :clap:

kubernetes dashboard

ご存知の方も多いかと思うのですが,
k8s のダッシュボードは

kubectl
kubectl proxy

で localhost で表示することができます.
ダッシュボードには, namespace や deployment, service, pods, replicasets など k8s クラスタで実行しているものは全て見ることができます.
詳しくは,
kubernetes dash board(英語)
kubernetes 環境構築
が参考になるかと...

WebUIについて

ダッシュボードの画面は
dashboard-ui.png
こんな感じになるんですが,
Pods のエリアに異常終了したジョブも表示されます.

問題点

一回実行されて異常終了する分には画面から削除すればいいのですが,
replica set などで異常終了して自動的に再実行された場合は,異常終了した Pods が簡単に百数十件とかになるわけです.
そうなると画面から削除するのはあまりにもつらすぎるので,コマンドを使って一括削除しました.

解決方法

cli の kubectlawk 使って一括削除します.
namespacedefault ,あるいは指定し忘れて PodsDeploymentcreateapply した場合は,

$ kubectl get pods -a | grep "Error" | awk '{print $1}' | xargs kubectl delete pods

namespace を明示的に指定する場合は,

$ NAME_SPACE=<your_namespace>
$ kubectl get pods --namespace=${NAME_SPACE} -a | grep "Error" | awk '{print $1}' | xargs kubectl delete pods --namespace=${NAME_SPACE}

でできます.
NAME_SPACE の値は適宜変えてください.

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0