본문으로 건너뛰기

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부터 자동 삭제됩니다.


다음 단계