[Kubernetes] CronJob
Updated:
개요
- 스케줄에 따라 주기적 혹은 특정 시간에 job을 실행
필드
- .spec.schedule
- 필수 필드
- cron 형식 사용
- .spec.startingDeadlineSeconds
- 선택 필드
- 잡 생성 완료 예상시간과 현재 시간의 차이가 설정한 시간보다 커지면 잡 생성을 건너뛰고 실패잡으로 분류
- 설정되지 않은 경우 스케줄된 시간에 잡이 시작하지 못하면 실패잡으로 간주
- .spec.concurrencyPolicy
- 선택 필드
- 동시성 정책
- Allow : 기본값, 동시 실행 허용
- Forbid : 동시 실행 금지
- Replace : 실행 중인 잡을 새로운 잡으로 대체
- .spec.suspend
- 선택 필드
- 기본값 : false
- true일 경우 시작 중인 잡을 제외하고 이후에 시작되는 잡들이 일시 정지
- 잡 히스토리 한도
- 선택 필드
- 설정한 수만큼 성공한 잡 또는 실패한 잡을 보관
- 0으로 설정할 경우 보관하지 않음
- .spec.successfulJobsHistoryLimit
- 기본값 : 3
- .spec.failedJobsHistoryLimit
- 기본값 : 1
- .spec.jobTemplate.spec.template.spec.restartPolicy
- 필수 필드
- 컨테이너 재시작 정책
- 파드에 적용되는 설정
- OnFailure : 같은 파드에서 컨테이너를 재시작
- Never : 새로운 파드 생성
예제
- yaml
apiVersion: batch/v1beta1 kind: CronJob metadata: name: hello spec: schedule: "*/1 * * * *" startingDeadlineSeconds: 60 concurrencyPolicy: Forbid suspend: false successfulJobsHistoryLimit: 60 failedJobsHistoryLimit: 60 jobTemplate: spec: template: spec: restartPolicy: OnFailure containers: - name: hello image: busybox imagePullPolicy: IfNotPresent command: - /bin/sh - -c - date