Search

Job

잡은 하나 이상의 파드를 지정하고 지정된 수의 파드를 성공적으로 실행하도록 하는 설정한다.
노드의 H/W 장애나 재부팅 등으로 인해 파드가 정상 실행이 되지 않았을 경우 job은 새로운 파드를 시작하도록 할 수 있다.
즉, 백업이나 특정 배치 파일들처럼 한번 실행하고 종료되는 성격의 작업에 사용될 수 있다.
Deployment가 ReplicasSet을 wrapping하고 ReplicaSet이 Pod를 wrapping하는 것처럼,
CronJob이 Job을 wrapping하고 Job이 Pod를 wrapping하는 방식을 비슷한 원리로 볼 수 있다.

Create Job

apiVersion: batch/v1 kind: Job metadata: name: simple-job spec: template: spec: containers: - name: busybox image: busybox command: ["echo", "Hello, Kubernetes!"] restartPolicy: Never backoffLimit: 4
YAML
복사
kubectl apply -f job.yaml
YAML
복사

restartPolicy 필드 옵션

Always → 항상 재시작 합니다.
OnFailure → 비정상 종료 발생 시 컨테이너를 재시작 합니다.
Never → 재시작을 하지 않습니다.
backoffLimit 은 백오프 정책이라고 하며 잡에 실패할 경우 다시 실행시킬 재시도 횟수를 지정 한다. 기본적으로 6이 설정 되어 있으며 재시작 실패 후 10초, 20초, 40초와 같이 실행을 재시도 한다. 

Result Value

kubectl get job -n <Namespace> kubectl get po -n <Namespace>
YAML
복사
Pod를 조회한 후 STATUS가 Completed면 정상적으로 생성된 것을 확인 할 수 있다.