What CronJob does not do
CronJob is a good scheduler for one pod. The gaps show up the moment a batch is more than one pod, and every team hits the same three.
- There is no dependency between CronJobs. Ordering is expressed by guessing at clock offsets, which quietly breaks the first time a job runs long.
- History is shallow by default: three successful runs and one failed run are retained, and the logs disappear with the pods. Explaining last Tuesday's failure is often impossible.
- If more than one hundred consecutive schedules are missed and startingDeadlineSeconds is unset, the CronJob stops scheduling entirely and waits for a human to notice.