Назад | Перейти на главную страницу

Kubernetes CronJob, не ставьте в очередь пропущенные задания

я прочел эти документы несколько раз, но все равно не понимаю, что startingDeadlineSeconds делает.

Я пытаюсь выяснить, можно ли избежать перепланирования задания, если текущее выполняется (с CronJob) и вместо этого просто позвольте следующий запланированное задание возобновится с того места, где оно было остановлено.

У меня очень нестабильное время выполнения работ (отдельная проблема, которую мне нужно решить). Это может занять от 1 часа до 24. Иногда, если на выполнение задания уходит целый день, но я запланировал его запуск каждые 12 часов, я получаю очередь другого задания, которое немедленно запускается, когда выполняется последнее. полный.

Я бы действительно хотел это никогда ставить задание в очередь и создавать новые задания только на следующий назначенное время.

Вот образец конфига

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: my-job
spec:
  schedule: "0 */2 * * *"
  concurrencyPolicy: Forbid
  successfulJobsHistoryLimit: 1
  jobTemplate:
    spec:
      backoffLimit: 1
      template:
        spec:
          containers:
          - name: my-job
            image: my-image
            command: ["do_something"]
          restartPolicy: OnFailure

Обратите внимание, что do_somethign может занять 1 час или 4 часа. Я бы хотел, чтобы на то, чтобы не поставили в очередь второе задание, которое обычно выполнялось бы, если бы занимало меньше времени.

Возможно ли это с Kubernetes CronJob?