Kubernetes: How to delete PODs based on age/creation time

后端 未结 3 2078
执念已碎
执念已碎 2020-12-30 07:51

Is it possible to delete POD in kubernetes based on creation time or age?

Example : I would like to delete all PODs which are older than 1 day. These PODs are orpha

相关标签:
3条回答
  • 2020-12-30 08:15

    You can either add a liveness probe to track how long the pod alive and kill it when it's longer a certain period. Or you can schedule a CronJob

    0 讨论(0)
  • 2020-12-30 08:18

    We could this with only awk by doing a regex [0-9]+d directly on the AGE ($5, 5th column) column and then printing the corresponding NAME ($1, first column) column

    kubectl delete pod $(kubectl get pod | awk 'match($5,/[0-9]+d/) {print $1}')
    

    Test first to see what's matching:

    kubectl get pod | awk 'match($5,/[0-9]+d/) {print $0}'
    

    $0 means all columns

    0 讨论(0)
  • 2020-12-30 08:22

    This command will delete all PODs older than one day :

    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
    

    This command will delete all PODs older than 4 hours :

    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
    
    0 讨论(0)
提交回复
热议问题