我需要了解kubernetes cronjob的行为。即使以前的作业没有完成,也会启动新的cronjob pod。只有一个蚁群在对抗这个任务前一个蚁群已经消失了。为什么在第一个工作没有完成的情况下启动新工作。使用kubectl describe job Userjob-1631434800
Command:
kubectl get jobs
Output:
NAME COMPLETIONS DURATION AGE
Userjob-1631434800 0/1 25h 25h
Userjob-1631496960 0/1 8h 8h
Command:
kubectl get cronjobs
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
Userjob */1 * * * * False 1 8h 26h
您需要使用concurrencyPolicy: Forbid
。使用此cron作业不允许并发运行;如果是运行新作业的时间,而上一个作业尚未完成,则cron作业将跳过新作业的运行
也可以签出其他选项
failedJobsHistoryLimit: 1
这将保留最后一个失败的作业。
successfulJobsHistoryLimit: 1
这将保持最后一个成功的工作。默认情况下,cronjob保留3个成功的job pod。