
Job이란?
- Job은 특정 작업을 성공적으로 완료할 때까지 Pod를 생성하고 관리하는 일회성 실행 리소스입니다.
- 동작 방식:
- Pod 실행 → 컨테이너 작업 완료 →
Completed 상태로 종료
- 작업이 실패할 경우 새로운 Pod가 생성되어 성공 개수 목표(
completions)를 달성할 때까지 반복
- 기본적으로 Pod는 하나씩 순차적으로 실행되며,
parallelism 옵션을 통해 병렬 실행이 가능합니다.
예시 코드
apiVersion: batch/v1
kind: Job
metadata:
name: math-add-job
spec:
completions: 3
parallelism: 2
template:
spec:
restartPolicy: Never
containers:
- name: math-add
image: busybox
command: ["expr", "3", "+", "2"]
함께 사용하는 명령어
| 목적 | 명령어 |
|---|
| CronJob 생성 | kubectl create -f cronjob.yaml |
| CronJob 목록 확인 | kubectl get cronjobs |
| CronJob이 생성한 Job 확인 | kubectl get jobs |
| Job이 생성한 Pod 확인 | kubectl get pods |
Job vs CronJob
구분
- Job: 한 번 실행 후 완료
- CronJob: 주기적으로 반복 실행
목적
- Job: 배치/단발성 작업 (이미지 처리, 데이터 분석 등)
- CronJob: 정기 작업 (보고서 생성, 이메일 발송 등)
설정
- Job:
completions, parallelism
- CronJob:
schedule (cron 표현식) + Job 템플릿
종료 여부
- Job: 완료되면 종료
- CronJob: 주기에 따라 Job 반복 실행