Menu Close

4.2.3. cron 작업 생성

작업 오브젝트를 생성하여 OpenShift Container Platform에서 cron 작업을 생성합니다.

프로세스

cron 작업을 생성하려면 다음을 수행합니다.

  1. 다음과 유사한 YAML 파일을 생성합니다.

    apiVersion: batch/v1beta1
    kind: CronJob
    metadata:
      name: pi
    spec:
      schedule: "*/1 * * * *"  1
      concurrencyPolicy: "Replace" 2
      startingDeadlineSeconds: 200 3
      suspend: true            4
      successfulJobsHistoryLimit: 3 5
      failedJobsHistoryLimit: 1     6
      jobTemplate:             7
        spec:
          template:
            metadata:
              labels:          8
                parent: "cronjobpi"
            spec:
              containers:
              - name: pi
                image: perl
                command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
              restartPolicy: OnFailure 9
    1 1
    cron 형식에 지정된 작업의 스케줄입니다. 이 예제에서는 작업은 분마다 실행됩니다.
    2 2
    cron 작업 내의 동시 작업 처리 방법을 지정하는 선택적 동시성 정책입니다. 다음 동시성 정책 중 하나만 지정할 수 있습니다. 지정하지 않는 경우 기본값은 동시 실행을 허용하는 것입니다.
    • Allow는 cron 작업이 동시에 실행되도록 허용합니다.
    • Forbid는 동시 실행을 금지하고 이전 실행이 아직 완료되지 않은 경우 다음 실행을 건너뜁니다.
    • Replace는 현재 실행 중인 작업을 취소하고 새 작업으로 교체합니다.
    3 3
    어떠한 이유로 예약된 시간을 놓치는 경우 작업을 시작하는 선택적 데드라인(초)입니다. 누락된 작업 실행은 실패한 작업으로 간주됩니다. 지정하지 않으면 데드라인이 없습니다.
    4 4
    cron 작업의 중지를 허용하는 선택적 플래그입니다. true로 설정하면 이후의 모든 실행이 일시 중지됩니다.
    5 5
    유지해야 하는 성공적으로 완료한 작업의 수입니다(기본값: 3).
    6 6
    유지해야 하는 실패한 작업의 수입니다(기본값: 1).
    7
    작업 템플릿입니다. 이 템플릿은 작업 예제와 유사합니다.
    8
    이 cron 작업에서 생성한 작업에 라벨을 설정합니다.
    9
    Pod의 재시작 정책입니다. 이 정책은 작업 컨트롤러에 적용되지 않습니다.
    참고

    .spec.successfulJobsHistoryLimit.spec.failedJobsHistoryLimit 필드는 선택 사항입니다. 해당 필드는 유지해야 하는 완료된 작업 수 및 실패한 작업 수를 지정합니다. 기본적으로 각각 31로 설정됩니다. 제한을 0으로 설정하면 해당 종류의 작업을 완료한 후 작업을 유지하지 않습니다.

  2. cron 작업을 생성합니다.

    $ oc create -f <file-name>.yaml
참고

oc create cronjob을 사용하여 단일 명령으로 cron 작업을 생성하고 시작할 수도 있습니다. 다음 명령에서는 이전 예제에서 지정한 것과 유사한 cron 작업을 생성하고 시작합니다.

$ oc create cronjob pi --image=perl --schedule='*/1 * * * *' -- perl -Mbignum=bpi -wle 'print bpi(2000)'

oc create cronjob을 사용하면 --schedule 옵션에서 cron 형식으로 된 일정을 수락합니다.