38.2. Cron 작업 생성
다음은 CronJob 리소스의 예입니다.
apiVersion: batch/v1beta1 kind: CronJob metadata: name: pi spec: schedule: "*/1 * * * *" 1 concurrencyPolicy: "Replace" 2 startingDeadlineSeconds: 200 3 suspend: false 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
- 작업의 schedule 필드는 cron 형식으로 지정됩니다. 이 예제에서는 작업이 1분마다 실행됩니다.
- 2 2
- 선택 사항: 동시성 정책은 작업 컨트롤러가 cron 작업 내에서 동시 작업을 처리하는 방법을 지정합니다. 다음 정책 중 하나만 지정할 수 있습니다.
-
허용
을 통해 여러 작업 인스턴스를 동시에 실행할 수 있습니다.allow
가 기본값입니다. -
Forbid
는 여러 작업 인스턴스가 동시에 실행되지 않도록 합니다. 이전 실행이 완료되지 않은 경우 예약된 실행은 건너뜁니다. -
replace
는 현재 실행 중인 작업 인스턴스를 취소하고 작업을 새 인스턴스로 교체합니다.
-
- 3 3
- 선택 사항: 시작 데드라인은 예약된 실행이 어떠한 이유로 누락된 경우 작업 시작을 위한 데드라인(초)을 지정합니다. 데드라인 후 cron 작업은 작업을 시작하지 않습니다. 누락된 작업 실행은 실패한 작업으로 간주됩니다. 기본적으로 작업에는 데드라인이 없습니다. 이 필드가 설정되면 cron 작업 컨트롤러에서 데드라인 값과 현재 시점 사이의 간격으로 발생하는 누락된 작업 수를 계산합니다. 예를 들어
startingDeadlineSeconds
가200
으로 설정된 경우 컨트롤러는 지난 200초 동안 누락된 작업 수를 계산합니다. 자세한 내용은 cron 작업 개념에 대한 Kubernetes 설명서의 cron 작업 제한 사항을 참조하십시오. - 4 4
- 선택 사항: suspend 필드는 cron 작업의 후속 실행을 방지하는 데 사용됩니다.
true
로 설정하면 모든 후속 실행이 시작되지 않습니다. 기본적으로 값은false
이고 작업이 실행됩니다. - 5
- 선택 사항: 성공한 작업 내역 제한은 유지할 완료된 작업 수를 지정합니다. 기본적으로 세 개의 작업이 유지됩니다.
- 6
- 선택 사항: 실패한 작업 기록 제한은 유지할 실패한 작업 수를 지정합니다. 기본적으로 하나의 작업이 유지됩니다.
- 7
- 작업 템플릿은 실행할 작업을 지정합니다. 필드는 작업 예제 와 유사합니다.
- 8
- 선택 사항: labels 필드는 cron 작업에서 시작한 작업에 설정할 레이블을 지정합니다. 이 예에서 작업은
parent=cronjobpi
레이블을 수신합니다. - 9
- 선택 사항: 작업을 실행하기 시작한 Pod의 재시작 정책입니다. 정책을
Always
,OnFailure
또는Never
로 설정할 수 있습니다. 기본적으로 컨테이너는 항상 다시 시작됩니다. 이 필드는 작업 컨트롤러에 적용되지 않습니다. 자세한 내용은 알려진 제한 사항을 참조하십시오.
CronJob
사양에 대한 자세한 내용은 cron 작업 사양을 작성하기 위한 Kubernetes 설명서를 참조하십시오.
참고
모든 cron 작업 일정
시간은 작업이 시작되는 마스터의 시간대를 기반으로 합니다.
oc run
을 사용하여 단일 명령에서 cron 작업을 생성하고 시작할 수도 있습니다. 다음 명령은 이전 예제에서 지정한 것과 동일한 cron 작업을 생성하고 시작합니다.
$ oc run pi --image=perl --schedule='*/1 * * * *' \ --restart=OnFailure --labels parent="cronjobpi" \ --command -- perl -Mbignum=bpi -wle 'print bpi(2000)'
oc run
를 사용하면 --schedule
옵션은 cron 형식 의 일정을 허용합니다.
참고
cron 작업을 생성할 때 oc run
은 Never
또는 OnFailure
재시작 정책(--restart
)만 지원합니다.
작은 정보
더 이상 필요하지 않은 cron 작업을 삭제합니다.
$ oc delete cronjob/<cron_job_name>
이렇게 하면 불필요한 아티팩트가 생성되지 않습니다.