<p>I have roughly 20 cronjobs in Kubernetes that handle various tasks at specific time intervals. Currently there's a fair bit of overlap causing usage of resources to spike, opposed to the usage graph being more flat.</p>
<p>Below is a rough example of one of my cronjobs:</p>
<pre class="lang-yaml prettyprint-override"><code>apiVersion: batch/v1
kind: cronjob
metadata:
  name: my-task
spec:
  schedule: &quot;*/20 * * * *&quot;
  successfulJobsHistoryLimit: 1
  failedJobsHistoryLimit: 1
  suspend: false
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      backoffLimit: 1
      ttlSecondsAfterFinished: 900
      template:
        spec:
          serviceAccountName: my-task-account
          containers:
          - name: my-task
            image: 12345678910.dkr.ecr.us-east-1.amazonaws.com/my-task:latest
            command: [&quot;/bin/sh&quot;]
            args:
              - -c
              - &gt;-
                  python3 my-task.py
            resources:
              requests:
                memory: &quot;3Gi&quot;
                cpu: &quot;800m&quot;
              limits:
                memory: &quot;5Gi&quot;
                cpu: &quot;1500m&quot;
          restartPolicy: Never
</code></pre>
<p>Is there a way to stagger my jobs so that they aren't all running concurrently?</p>
<p>ie.</p>
<ul>
<li>job 1 starts at 12:00 with next run at 12:20</li>
<li>job 2 starts at 12:01 with next run at 12:21</li>
<li>job 3 starts at 12:02 with next run at 12:22</li>
<li>job 4 starts at 12:03 with next run at 12:23</li>
</ul>
<p>A solution where this is handled automatically would be 1st prize however a manually configured solution would also suffice.</p>

Damian Jacobs
<p><strong>Posting my comment as the answer for better visibility.</strong></p>
<p>As far as I understood, all your jobs are configured separately, you can set specific schedule for each of them, e.g. for job 1 that starts at 12:00 with next run at 12:20 it can set up like this:</p>
<pre><code>spec:
  schedule: &quot;0,20 12 * * *&quot;
</code></pre>
<p>and correspondingly for job 2:</p>
<pre><code>spec:
  schedule: &quot;01,21 12 * * *&quot;
</code></pre>
