web-dev-qa-db-ja.com

Kubernetes:年齢/作成時間に基づいてPODを削除する方法

作成時間または作成年齢に基づいてkubernetesのPODを削除することはできますか?

例:1日より古いすべてのPODを削除したいと思います。これらのPODは孤立しているため、新しいPODは作成されません。

5
dansl1982

このコマンドは、1日より古いすべてのPODを削除します。

kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}} {{.metadata.creationTimestamp}}{{"\n"}}{{end}}' | awk '$2 <= "'$(date -d 'yesterday' -Ins --utc | sed 's/+0000/Z/')'" { print $1 }' | xargs --no-run-if-empty kubectl delete pod

このコマンドは、4時間以上経過したすべてのPODを削除します。

kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}} {{.metadata.creationTimestamp}}{{"\n"}}{{end}}' | awk '$2 <= "'$(date -d'now-4 hours' -Ins --utc | sed 's/+0000/Z/')'" { print $1 }' | xargs --no-run-if-empty kubectl delete pod
3
dansl1982

活性プローブ を追加して、ポッドの存続期間を追跡し、特定の期間が長くなったときにポッドを強制終了することができます。または、 CronJob をスケジュールすることもできます

0
Cindy