• [Kubernetes Workloads] 크론잡(CronJob)
    아키텍처 공부/Cloud 2022. 10. 9. 10:41
    반응형

    크론(Cron)

    Cron 형식은 작업을 실행하고 반복해야 하는 날짜와 시간을 지정하는 데 사용되는 일반적으로 채택되는 구문이다. 

     

    크론잡(CronJob)

     크론잡(CronJob)은 정의된 일정에 따라 반복 가능한 방식으로 잡을 생성하는 쿠버네티스 객체이다. 크론잡은 프로세스를 예약하기 위한 표준 Unix/Linux 메커니즘인 cron의 이름을 따서 명명되었기 때문에 크론잡라고 불린다. 일정 필드는 크론잡을 지정하기 위해 Unix/Linux 표준 형식의 시간을 허용한다.

     

     기본적으로 크론잡은 작업이 마지막으로 예약된 이후 실행에 실패한 횟수를 확인한다. 해당 실패 횟수가 100을 초과하면 오류가 기록되고 작업이 예약되지 않는다. 이렇게 하면 시간이 지남에 따라 실패한 시도가 끝없이 누적되는 크론잡 오류를 방지할 수 있습니다.

     

    크론잡 매니페스트

      .spec.startingDeadlineSeconds (기본값 N/A)

       만약 .spec.startingDeadlineSeconds가 200으로 설정되면, 마지막으로 실행된 잡 예약 시간부터 몇 회(100회까지)의 실패가 있었는지가 아니라, 현재 시간부터 과거 200초내에 몇 회의 실패가 있었는지 확인한다.

     

      .spec.concurrencyPolicy  (기본값 Allow)

       concurrencyPolicy 값을 사용하여 Allow, Forbid 또는 Replace 값으로 동시 실행이 허용되는지 여부를 정의할 수 있다.

    Allow는 잡이 동시에 실행되는 것을 허용한다. Forbid의 경우 기존 작업이 완료되지 않았을 때, 크론잡은 새 작업을 실행을 건너뛴다. Replace를 사용하면 기존 작업이 새 작업으로 대체된다.

     

    크론 스케줄 문법

    # 분 (0 - 59)
    # 시 (0 - 23)
    # 일 (1 - 31)
    # 월 (1 - 12)
    # 요일 (0 - 6) (일요일(0)부터 토요일(6)까지; 또는 sun, mon, tue, wed, thu, fri, sat)                                   
    
    * * * * * (분, 시, 일, 월, 요일)

     

    초까지 처리하는 크론 문법도 있다.

    * * * * * * (초, 분, 시, 일, 월, 요일)

    # * : 모든 값
    # ? : 특정한 값 없음
    # 매요일 매월 매일 4시 0분 0초에 작동하는 크론잡
    
    0 0 4 ? * *
    반응형

    댓글

Designed by Tistory.