<한줄 요약>
job은 컨테이너를 사용하여 한번만 실행되는 리소스다.
<세줄 요약>
- job은 기동중인 Pod가 정지되는 것을 전제로 만들어졌다.(레플리카셋 등 다른 리소스들은 running을 전제로 만들어졌다)
- 일회성 배치 처리 작업에 유용하다(예시 : S3같은 오브젝트 스토리지에 파일 업로드, 머신러닝 학습 등)
- job은 Pod의 정지가 정상 종료되는 작업에 적합하다
<특징>
- completions : 성공 횟수 지정. 기본값 1. 변경 불가.
- parallelism : 병렬성 지정. 기본값 1. 변경 불가.
- backoffLimit : 성공할 때까지 재시도(실패 허용) 횟수. 변경 불가.
- backoffLimit 횟수가 2일 경우 : 총 3번 실행(첫 시도 + 2번 재시도)
- backoffLimit 횟수를 1개 이상 설정할 경우 Job의 연산이 멱등성을 가졌는지 확인(=연산을 여러 번 적용하더라도 결과가 달라지지 않는지)
- ttl.SecondsAfterFinished : 잡 종료 후 일정 기간(초) 경과 후 삭제 하도록
<장단점(한계)>
장점 : 1회성 batch작업에 좋다
단점 : 주기적으로 반복되는 작업할 땐 불편하다
<존재 이유>
1회성 batch작업에 좋다
<만드는 법>
1)yaml 매니패스토
https://kubernetes.io/docs/concepts/workloads/controllers/job/ 2)kubectl create job 명령어 : 간단한 것만 생성 가능
kubectl create job {잡 이름} --image={이미지 이름} -- {명령어}
<흐름 속 의미>
initContainer가 Pod 단위로 기동 단계 초반에 1회성 작업을 한다면,
Job은 워크로드 중간에 1회성으로 batch 작업을 한다
'Kubernetes' 카테고리의 다른 글
ConfigMap (0) | 2023.01.29 |
---|---|
Resource requirements(Request & Limit) (0) | 2023.01.22 |
쿠버네티스 apiVersion이란? (0) | 2023.01.15 |
CKAD 후기 (Certified Kubernetes Application Developer) (2) | 2023.01.09 |
쿠버네티스 시험 준비할 때 익혀두면 편한 리눅스 명령어들 (0) | 2023.01.09 |