최대 1 분 소요

개요

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