Updated:

less than 1 minute read

개요

  • 스케줄에 따라 주기적 혹은 특정 시간에 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