4.5. CronJobs (크론 작업)
개요
CronJobs 페이지는 MCM 컨트롤 플레인에서 관리하는 모든 CronJob을 통합적으로 관리하는 페이지입니다. CronJob은 지정된 크론 스케줄에 따라 주기적으로 Job을 생성하여 실행하는 워크로드입니다.
주요 목적:
- 멀티클러스터 CronJob 통합 관리
- 스케줄 기반 자동 작업 실행
- Job 생성 히스토리 및 상태 추적
- PropagationPolicy 및 OverridePolicy 확인
CronJob 사용 사례:
- 정기 백업 (매일 자정 데이터베이스 백업)
- 주기적 리포트 생성 (매주 월요일 리포트)
- 캐시 정리 (매시간 오래된 캐시 삭제)
- 시스템 상태 점검 (5분마다 헬스 체크)
- 로그 로테이션 및 정리
화면 구성
CronJobs 페이지는 테이블 형태로 CronJob 목록을 표시합니다.

페이지 상단 요소
| 요소 | 설명 |
|---|---|
| 네임스페이스 필터 | 특정 네임스페이스의 CronJob만 표시 |
| 새로고침 버튼 | CronJob 목록 갱신 |
| 생성 버튼 | 새 CronJob 생성 다이얼로그 열기 |
| 검색창 | CronJob 이름으로 검색 |
테이블 컬럼
| 컬럼 | 설명 | 정렬 |
|---|---|---|
| 이름 | CronJob 이름 | ✅ |
| 네임스페이스 | CronJob이 속한 네임스페이스 | ✅ |
| 스케줄 | 크론 표현식 및 설명 (예: "*/5 * * * *" - 5분마다) | ✅ |
| 상태 | 활성 / 일시 중지 | ✅ |
| 이미지 | 컨테이너 이미지 이름 | ✅ |
| 마지막 스케줄 | 마지막으로 Job이 실행된 시간 | ✅ |
| 경과시간 | CronJob 생성 후 경과 시간 | ✅ |
| 작업 | 편집/삭제 버튼 | - |
상태 표시
| 상태 | 설명 | 표시 |
|---|---|---|
| 활성 | CronJob이 스케줄에 따라 정상 실행 중 | 녹색 배지 |
| 일시 중지 | CronJob 실행이 일시 중지됨 | 노란색 배지 |
스케줄 표시
스케줄 컬럼은 크론 표현식과 함께 사람이 읽기 쉬운 설명을 표시합니다:
*/5 * * * *→ "5분마다"0 0 * * *→ "매일 자정"0 0 * * 0→ "매주 일요일 자정"
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 편집
- CronJob 선택
- 상세 패널에서 "편집" 버튼 클릭
- YAML 에디터에서 CronJob 정의 수정
- "저장" 버튼 클릭
CronJob 일시 중지/재개
CronJob의 실행을 일시적으로 중지하거나 다시 시작할 수 있습니다.
- CronJob 선택 후 "편집" 클릭
- YAML에서
spec.suspend값 변경:true: 일시 중지false: 재개
- "저장" 버튼 클릭
CronJob 삭제
⚠️ 주의: CronJob을 삭제하면 관련된 모든 Job과 파드도 함께 삭제됩니다.
- 삭제할 CronJob 선택
- 상세 패널에서 "삭제" 버튼 클릭
- 확인 다이얼로그에서 CronJob 이름 입력
- "삭제" 버튼 클릭
사용 예시
시나리오 1: 정기 백업 CronJob 생성
- "생성" 버튼 클릭
- CronJob 정보 입력:
- 이름:
daily-backup - 네임스페이스:
production - 컨테이너 이미지:
my-registry/backup:v1.0 - 스케줄:
0 2 * * *(매일 새벽 2시) - 명령어:
["/backup.sh", "--full"]
- 이름:
- "생성" 버튼 클릭
- PropagationPolicy로 타겟 클러스터 지정
- 이벤트 탭에서 Job 생성 확인
시나리오 2: CronJob 스케줄 확인
- CronJob 목록에서 확인할 CronJob 클릭
- 개요 탭에서 스케줄 정보 확인:
- 스케줄 표현식
- 스케줄 설명 (사람이 읽기 쉬운 형태)
- 다음 실행 예정 시간
- Cron 작업 상태에서 마지막 실행 정보 확인
시나리오 3: 실패한 Job 히스토리 확인
- CronJob 선택 후 개요 탭 열기
- 히스토리 제한 섹션 확인:
- 성공 작업 히스토리: 유지되는 성공 Job 수
- 실패 작업 히스토리: 유지되는 실패 Job 수
- 이벤트 탭에서 실패 이벤트 확인
- 파드 탭에서 실패한 파드 로그 확인
시나리오 4: CronJob 일시 중지
- 일시 중지할 CronJob 선택
- "편집" 버튼 클릭
- YAML에서
spec.suspend: true설정 - "저장" 클릭
- 상태가 "일시 중지"로 변경됨 확인
- 새 Job이 더 이상 생성되지 않음 확인
시나리오 5: 멀티클러스터 CronJob 실행
- CronJob 생성 및 PropagationPolicy 적용
- 상세 패널에서 "멀티클러스터 정책" 탭 확인
- 대상 클러스터에 CronJob이 분배되었는지 확인
- 각 클러스터에서 스케줄에 따라 Job 생성 모니터링
- 파드 탭에서 클러스터별 파드 실행 현황 확인
관련 개념
CronJob vs Job
| 특성 | CronJob | Job |
|---|---|---|
| 실행 방식 | 주기적 스케줄 실행 | 일회성 실행 |
| 트리거 | 크론 스케줄에 따라 자동 | 생성 시 즉시 실행 |
| Job 생성 | 스케줄마다 새 Job 생성 | 직접 생성된 단일 Job |
| 사용 사례 | 정기 백업, 리포트 | 마이그레이션, 배치 처리 |
| 관리 | 자동 Job 생성/삭제 | 수동 생성/삭제 |
크론 표현식
크론 표현식은 5개 필드로 구성됩니다:
일반적인 예시:
| 표현식 | 설명 |
|---|---|
*/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부터 자동 삭제됩니다.
다음 단계
- ConfigMaps (구성 맵) - 멀티클러스터 ConfigMap 관리
- Jobs (작업) - 멀티클러스터 Job 관리
- Propagation Policies (배포 정책) - PropagationPolicy 설정