Search code examples
kuberneteskubernetes-podkubernetes-jobs

How can I delete all pods via delete job


I created a job,and rerun it several times。 When I delete this job. Only the latest pod be deleted.

How Can I delete these pods all.


Solution

  • For Cronjob

    You can use the successfulJobsHistoryLimit to manage the pod count, if you will set it to 0, POD will get removed as soon as it complete it's execution successfully.

    successfulJobsHistoryLimit: 0
    failedJobsHistoryLimit: 0
    

    Read more at : https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#jobs-history-limits

    GCP ref : https://cloud.google.com/kubernetes-engine/docs/how-to/cronjobs#history-limit

    For Job

    If you are using job not cronjob you can use ttlSecondsAfterFinished - delete the job pod after set second automatically, you can set it accordingly keeping some buffer.

    ttlSecondsAfterFinished: 100
    

    will solve your issue.

    Example : https://kubernetes.io/docs/concepts/workloads/controllers/job/#clean-up-finished-jobs-automatically

    Extra :

    You can delete those pods using simple command but that is one-time solution using the label in PODs or used in job

    kubectl delete pods -l <labels> -n <namespace>