I have a job in kubernetes that usually takes 2 minutes, and on certain occasions lasts up to 20 minutes. I'd rather run it every 5 minutes, but I can't run more than one job, no parallelism. How can I coordinate the runs? Of course I can run it every 20 minutes, but I need it to run more frequently.
One solution is to run it from a shell script, but then I'll need to kill it after 20 minutes, which is too much; we have kubernets.
Is there a way to coordinate the runs intelligently? (Policies may vary, but that's a different story.)
Use a cron job and set the
concurrencyPolicy
toForbid
.Forbid
: The CronJob does not allow concurrent runs; if it is time for a new job run and the previous job run hasn't finished yet, the CronJob skips the new job run.