잡은 하나 이상의 파드를 지정하고 지정된 수의 파드를 성공적으로 실행하도록 하는 설정한다.
노드의 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면 정상적으로 생성된 것을 확인 할 수 있다.