Cron Job

Cron Job — объект API Kubernetes, который создает под, в котором будет выполнена только одна задача, после чего он будет остановлен. В отличии от объекта Job — для Cron Job можно установить точное время, в которое он будет запущен.

Пример Cron Job:

.. code-block:: bash

   apiVersion: batch/v1beta1
   kind: CronJob
   metadata:
     name: pi
   spec:
   schedule: "*/1 * * * *"
   concurrencyPolicy: "Replace"
   startingDeadlineSeconds: 200
   suspend: true
   successfulJobsHistoryLimit: 3
   failedJobsHistoryLimit: 1
   jobTemplate:
     spec:
       template:
         metadata:
           labels:
             parent: "cronjobpi"
       spec:
         containers:
         - name: pi
           image: perl
           command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
         restartPolicy: OnFailure

Где:

  • schedule — график работы указан в формате cron. В этом примере задание будет выполняться каждую минуту.

  • concurrencyPolicy — политика, определяющая, как будут работать несколько объектов Cron Job.

    • Allow — несколько объектов Cron Job могут работать одновременно.

    • Forbid — запрещает параллельные запуски объектов Cron Job.

    • Replace — отменяет текущее работающий объект Cron Job и заменяет его новым.

  • startingDeadlineSeconds — крайний срок (в секундах) для запуска задания.

  • suspend— параметр, который позволяет приостановить объект Cron Job. Если установлено значение true, все последующие запуски объекта CronJob будут приостановлены.

  • successfulJobsHistoryLimit — количество успешно завершенных Cron Job, которые необходимо сохранить (по умолчанию 3).

  • failedJobsHistoryLimit— количество не выполненных завершенных Cron Job (по умолчанию 1).

  • jobTemplate — шаблон объекта задания.

  • parent — параметр устанавливает метки для задания указанного в объекте Cron Job.

  • restartPolicy — eстановленная ранее политика перезагрузки пода.

Чтобы создать объект Corn Job с помощью CLI используйте команду:

oc create -f <file-name>.yaml

Где <file-name>.yaml — файл YAML содержащий исходный код объекта Cron Job.

См.также

Подробнее о CronJobs смотрите здесь.