이번 시간엔 Job 과 CronJob 에 대해 설명하도록 한다.
잡(Job)
- 하나 이상의 파드를 생성하고, 지정한 명령어를 실행하면 종료된다.
- 성공적으로 종료될 때 까지 계속해서 파드의 실행을 재시도 한다.
- 파드가 성공적으로 완료되면 종료된다.
CLI 를 통해 대략적인 매니페스트 생성이 가능하다.
k create job throw-dice-job --image=kodekloud/throw-dice --dry-run=client -o yaml > throw-dice-job2.yaml
싱글 컨테이너 형식
apiVersion: batch/v1
kind: Job
metadata:
name: math-add-job
spec:
template:
spec:
containers:
- name: math-add
image: ubuntu
command: ['expr', '3', '+', '2']
멀티 컨테이너 형식
apiVersion: batch/v1
kind: Job
metadata:
name: math-add-job
spec:
completions: 3
parallelism: 3 # 병렬 처리
backoffLimit: 6 # 실패 시 재시도 대기 시간 (6분간 대기함)
template:
spec:
containers:
- name: math-add
image: ubuntu
command: ['expr', '3', '+', '2']
restartPolicy: Never
크론잡(CronJob)
- 일정에 따라 주기적으로 동작시킨다.
- 크론 스케줄 문법을 따른다.
# ┌───────────── 분 (0 - 59)
# │ ┌───────────── 시 (0 - 23)
# │ │ ┌───────────── 일 (1 - 31)
# │ │ │ ┌───────────── 월 (1 - 12)
# │ │ │ │ ┌───────────── 요일 (0 - 6) (일요일부터 토요일까지;
# │ │ │ │ │ 특정 시스템에서는 7도 일요일)
# │ │ │ │ │
# │ │ │ │ │
# * * * * *
Kubernetes v1.21 버전 이상에서 사용할 수 있다.
매니페스트 파일은 다음과 같다.
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: reporting-cron-job
spec:
schedule: "*/1 * * * *"
jobTemplate: # 아래부터는 잡의 형태와 같다.
spec:
completions: 3
parallelism: 3 # 병렬 처리
template:
spec:
containers:
- name: math-add
image: ubuntu
command: ['expr', '3', '+', '2']
크론잡은 jobTemplate 밑에 잡의 내용이 들어가는 식으로 작성된다.
잡과 크론잡은 이렇다 할 추가적 내용이 없는 것 같다. 필요하면 공식 문서를 참고해보는걸로~
section 6 는 이렇게 마무리..
다음은 section 7 Services & Networking
'Dev > Kubernetes' 카테고리의 다른 글
[CKAD] section 7. Services (1) (0) | 2022.04.28 |
---|---|
[Kubernetes] 쿠버네티스로 우분투 띄워보기 (0) | 2022.04.18 |
[CKAD] section 6. POD Design (1) - Labels & Rolling Update (0) | 2022.04.12 |
[CKAD] section 5. Observability (0) | 2022.04.07 |
[CKAD] section 4. Multi-Container Pod (0) | 2022.04.02 |