Job이란?
<이미지 출처 : [따배쿠] 6-6. 쿠버네티스 Job Controller>
- pod의 정상적인 종료를 관리
- K8s는 pod를 running 중인 상태로 유지
- Batch 처리하는 pod는 작업이 완료되면 종료됨
- Batch 처리에 적합한 controller로 pod의 성공적인 완료를 보장
- 비정상 종료 시 다시 실행
- 정상 종료 시 완료
- definition
apiVersion: batch/v1 kind: Job metadata: name: centos-job spec: # completions: 5 # parallelism: 2 activeDeadlineSeconds: 5 template: spec: containers: - name: centos-container image: centos:7 command: ["bash"] args: - "-c" - "echo 'Hello World'; sleep 25; echo 'Bye'" restartPolicy: Never # restartPolicy: OnFailure backoffLimit: 3
- restartPolicy
- Never : container가 비정상적으로 종료될 경우 pod를 재시작
- OnFailure : container가 비정상적으로 종료될 경우 container를 재시작
- backoffLimit : 재시작 횟수
- completion : container 실행 횟수 (= replicas)
- parallelism : running 중으로 유지할 pod 개수
- activeDeadlineSeconds : 지정된 시간(초) 후에 application 강제 완료 상태로 만듬
- job 생성
kubectl create -f job-exam.yaml
- job 삭제
kubectl delete job jobs.batch centos-job
[ Hands -on ]
1. restartPolicy: OnFailure
- job yaml 파일 생성
vi job-exam.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: centos-job
spec:
template:
spec:
containers:
- name: centos-container
image: centos:7
command: ["bashc"] # 오류가 나도록 오타 기입
args:
- "-c"
- "echo 'Hello World'; sleep 25; echo 'Bye'"
restartPolicy: OnFailure
backoffLimit: 3
- job을 통한 container 배포
- backoffLimit로 지정한 횟수 만큼 container 재시작
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
centos-job-2xgs6 0/1 RunContainerError 3 (2s ago) 44s 192.168.221.14 node2.example.com <none> <none>
2. restartPolicy: Never
vi job-exam.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: centos-job
spec:
template:
spec:
containers:
- name: centos-container
image: centos:7
command: ["bashc"] # 오류가 나도록 오타 기입
args:
- "-c"
- "echo 'Hello World'; sleep 25; echo 'Bye'"
restartPolicy: Never
backoffLimit: 3
- job을 통한 container 배포
- backoffLimit로 지정한 횟수 만큼 pod 재시작
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
centos-job-9gbr7 0/1 StartError 0 41s 192.168.221.16 node2.example.com <none> <none>
centos-job-kqz5h 0/1 StartError 0 36s 192.168.221.17 node2.example.com <none> <none>
centos-job-m5n6q 0/1 StartError 0 31s 192.168.221.18 node2.example.com <none> <none>
centos-job-rk7ch 0/1 StartError 0 45s 192.168.221.15 node2.example.com <none> <none>
참고 :
'INFRA > DevOps' 카테고리의 다른 글
[K8s] Cluster IP (0) | 2022.11.09 |
---|---|
[k8s] Cronjob (0) | 2022.11.01 |
[k8s] Statefulset (0) | 2022.10.19 |
[NGINX] Reverse Proxy (0) | 2022.10.11 |
API Proxy (0) | 2022.10.11 |
댓글