본문으로 건너뛰기

4.5. CronJobs (크론 작업)

개요​

CronJobs 페이지는 MCM 컨트롤 플레인에서 관리하는 모든 CronJob을 통합적으로 관리하는 페이지입니다. CronJob은 지정된 크론 스케줄에 따라 주기적으로 Job을 생성하여 실행하는 워크로드입니다.

주요 목적:

  • 멀티클러스터 CronJob 통합 관리
  • 스케줄 기반 자동 작업 실행
  • Job 생성 히스토리 및 상태 추적
  • PropagationPolicy 및 OverridePolicy 확인

CronJob 사용 사례:

  • 정기 백업 (매일 자정 데이터베이스 백업)
  • 주기적 리포트 생성 (매주 월요일 리포트)
  • 캐시 정리 (매시간 오래된 캐시 삭제)
  • 시스템 상태 점검 (5분마다 헬스 체크)
  • 로그 로테이션 및 정리

화면 구성​

CronJobs 페이지는 테이블 형태로 CronJob 목록을 표시합니다.

CronJobs 메인 화면

페이지 상단 요소​

요소설명
네임스페이스 필터특정 네임스페이스의 CronJob만 표시
새로고침 버튼CronJob 목록 갱신
생성 버튼새 CronJob 생성 다이얼로그 열기
검색창CronJob 이름으로 검색

테이블 컬럼​

컬럼설명정렬
이름CronJob 이름✅
네임스페이스CronJob이 속한 네임스페이스✅
스케줄크론 표현식 및 설명 (예: "*/5 * * * *" - 5분마다)✅
상태활성 / 일시 중지✅
이미지컨테이너 이미지 이름✅
마지막 스케줄마지막으로 Job이 실행된 시간✅
경과시간CronJob 생성 후 경과 시간✅
작업편집/삭제 버튼-

상태 표시​

상태설명표시
활성CronJob이 스케줄에 따라 정상 실행 중녹색 배지
일시 중지CronJob 실행이 일시 중지됨노란색 배지

스케줄 표시​

스케줄 컬럼은 크론 표현식과 함께 사람이 읽기 쉬운 설명을 표시합니다:

  • */5 * * * * → "5분마다"
  • 0 0 * * * → "매일 자정"
  • 0 0 * * 0 → "매주 일요일 자정"

CronJob 상세 정보​

CronJob 행을 클릭하면 상세 정보 패널이 열립니다.

CronJob 상세 정보

상세 패널 헤더​

요소설명
CronJob 이름선택한 CronJob 이름
네임스페이스CronJob이 속한 네임스페이스
스케줄크론 표현식 (예: */5 * * * *)
상태준비됨 / 일시 중지

액션 버튼​

버튼기능
새로고침CronJob 정보 갱신
편집YAML 편집 모드
삭제CronJob 삭제

탭 메뉴​

개요 탭​

CronJob의 기본 정보, 스케줄 정보, 상태 정보를 표시합니다.

기본 정보:

항목설명
이름CronJob 이름
네임스페이스CronJob이 속한 네임스페이스
상태준비됨 / 일시 중지
경과시간생성 후 경과 시간
생성일CronJob 생성 일시

스케줄 정보:

항목설명
스케줄크론 표현식 (예: */5 * * * *)
스케줄 설명사람이 읽기 쉬운 스케줄 설명 (예: 5분마다)
일시 중지예 / 아니오
동시성 정책Allow / Forbid / Replace
시작 기한 (초)Job 생성 지연 허용 시간

Cron 작업 상태:

항목설명
마지막 스케줄 시간마지막으로 Job이 스케줄된 시간
마지막 성공 시간마지막으로 Job이 성공한 시간
활성 작업현재 실행 중인 Job 수

히스토리 제한:

항목설명
성공 작업 히스토리유지할 성공 Job 수 (기본값: 3)
실패 작업 히스토리유지할 실패 Job 수 (기본값: 1)

컨테이너 이미지:

CronJob에 정의된 컨테이너 이미지를 표시합니다.

멀티클러스터 정책 탭​

CronJob에 적용된 멀티 클러스터 정책 정보를 표시합니다.

멀티클러스터 정책 탭

전파 정책 (PropagationPolicy):

컬럼설명
이름PropagationPolicy 이름
네임스페이스정책이 속한 네임스페이스
범위네임스페이스 범위 정책 / 클러스터 범위 정책
대상 클러스터타겟 클러스터 목록

오버라이드 정책 (OverridePolicy):

클러스터별 커스텀 설정이 있는 경우 표시됩니다.

레이블 탭​

CronJob에 적용된 Kubernetes 레이블 목록을 표시합니다.

어노테이션 탭​

CronJob에 적용된 어노테이션 목록을 표시합니다.

파드 탭​

해당 CronJob에서 생성된 Job의 파드 목록을 표시합니다.

파드 탭

참고: CronJob은 스케줄에 따라 Job을 생성하고, Job이 파드를 생성합니다. 현재 실행 중인 Job이 없으면 파드가 표시되지 않습니다.

컬럼설명
이름파드 이름
클러스터파드가 실행 중인 클러스터
상태파드 상태 (실행 중/대기 중/성공/실패)
노드파드가 스케줄된 노드
재시작 횟수파드 재시작 횟수
경과시간파드 생성 후 경과 시간
작업보기/삭제 버튼

이벤트 탭​

CronJob 관련 Kubernetes 이벤트를 표시합니다.

CronJob 생성​

새로운 CronJob을 MCM 컨트롤 플레인에 생성합니다.

입력 항목​

항목필수설명
이름✅CronJob 이름
네임스페이스✅배포할 네임스페이스
컨테이너 이미지✅컨테이너 이미지 URL
스케줄✅크론 표현식 (예: */5 * * * *)
명령어-컨테이너 실행 명령어
동시성 정책-Allow / Forbid / Replace (기본값: Allow)
시작 기한-Job 생성 지연 허용 시간 (초)
성공 히스토리-유지할 성공 Job 수 (기본값: 3)
실패 히스토리-유지할 실패 Job 수 (기본값: 1)

YAML 편집​

"YAML 편집" 탭에서 CronJob 정의를 직접 작성할 수 있습니다.

CronJob 작업​

CronJob 편집​

  1. CronJob 선택
  2. 상세 패널에서 "편집" 버튼 클릭
  3. YAML 에디터에서 CronJob 정의 수정
  4. "저장" 버튼 클릭

CronJob 일시 중지/재개​

CronJob의 실행을 일시적으로 중지하거나 다시 시작할 수 있습니다.

  1. CronJob 선택 후 "편집" 클릭
  2. YAML에서 spec.suspend 값 변경:
    • true: 일시 중지
    • false: 재개
  3. "저장" 버튼 클릭

CronJob 삭제​

⚠️ 주의: CronJob을 삭제하면 관련된 모든 Job과 파드도 함께 삭제됩니다.

  1. 삭제할 CronJob 선택
  2. 상세 패널에서 "삭제" 버튼 클릭
  3. 확인 다이얼로그에서 CronJob 이름 입력
  4. "삭제" 버튼 클릭

사용 예시​

시나리오 1: 정기 백업 CronJob 생성​

  1. "생성" 버튼 클릭
  2. CronJob 정보 입력:
    • 이름: daily-backup
    • 네임스페이스: production
    • 컨테이너 이미지: my-registry/backup:v1.0
    • 스케줄: 0 2 * * * (매일 새벽 2시)
    • 명령어: ["/backup.sh", "--full"]
  3. "생성" 버튼 클릭
  4. PropagationPolicy로 타겟 클러스터 지정
  5. 이벤트 탭에서 Job 생성 확인

시나리오 2: CronJob 스케줄 확인​

  1. CronJob 목록에서 확인할 CronJob 클릭
  2. 개요 탭에서 스케줄 정보 확인:
    • 스케줄 표현식
    • 스케줄 설명 (사람이 읽기 쉬운 형태)
    • 다음 실행 예정 시간
  3. Cron 작업 상태에서 마지막 실행 정보 확인

시나리오 3: 실패한 Job 히스토리 확인​

  1. CronJob 선택 후 개요 탭 열기
  2. 히스토리 제한 섹션 확인:
    • 성공 작업 히스토리: 유지되는 성공 Job 수
    • 실패 작업 히스토리: 유지되는 실패 Job 수
  3. 이벤트 탭에서 실패 이벤트 확인
  4. 파드 탭에서 실패한 파드 로그 확인

시나리오 4: CronJob 일시 중지​

  1. 일시 중지할 CronJob 선택
  2. "편집" 버튼 클릭
  3. YAML에서 spec.suspend: true 설정
  4. "저장" 클릭
  5. 상태가 "일시 중지"로 변경됨 확인
  6. 새 Job이 더 이상 생성되지 않음 확인

시나리오 5: 멀티클러스터 CronJob 실행​

  1. CronJob 생성 및 PropagationPolicy 적용
  2. 상세 패널에서 "멀티클러스터 정책" 탭 확인
  3. 대상 클러스터에 CronJob이 분배되었는지 확인
  4. 각 클러스터에서 스케줄에 따라 Job 생성 모니터링
  5. 파드 탭에서 클러스터별 파드 실행 현황 확인

관련 개념​

CronJob vs Job​

특성CronJobJob
실행 방식주기적 스케줄 실행일회성 실행
트리거크론 스케줄에 따라 자동생성 시 즉시 실행
Job 생성스케줄마다 새 Job 생성직접 생성된 단일 Job
사용 사례정기 백업, 리포트마이그레이션, 배치 처리
관리자동 Job 생성/삭제수동 생성/삭제

크론 표현식​

크론 표현식은 5개 필드로 구성됩니다:

cron 표현식의 다섯 자리

일반적인 예시:

표현식설명
*/5 * * * *5분마다
0 * * * *매시 정각
0 0 * * *매일 자정
0 2 * * *매일 새벽 2시
0 0 * * 0매주 일요일 자정
0 0 1 * *매월 1일 자정
0 0 1 1 *매년 1월 1일 자정

동시성 정책 (Concurrency Policy)​

정책설명
Allow이전 Job이 완료되지 않아도 새 Job 생성 허용 (기본값)
Forbid이전 Job이 실행 중이면 새 Job 생성 건너뜀
Replace이전 Job을 취소하고 새 Job으로 대체

시작 기한 (Starting Deadline Seconds)​

  • Job이 예정 시간에 시작되지 못했을 때 허용되는 지연 시간
  • 이 시간이 지나면 Job 생성을 건너뜀
  • 클러스터 다운타임 후 밀린 Job 처리에 영향

예: startingDeadlineSeconds: 200

  • 스케줄 시간으로부터 200초 내에만 Job 생성 허용
  • 200초 후에는 해당 스케줄 실행을 건너뜀

히스토리 제한​

  • successfulJobsHistoryLimit: 유지할 성공 Job 수 (기본값: 3)
  • failedJobsHistoryLimit: 유지할 실패 Job 수 (기본값: 1)

이 제한을 초과하면 오래된 Job부터 자동 삭제됩니다.


다음 단계​