쿠버네티스 Job 개요
- 쿠버네티스 Job은 쿠버네티스에게 특정 일을 시키고 싶을 때 사용한다.
- Job에 대해 공식 페이지 를 읽어보면서 정리한다.
잡(Job) 에 대해서
- 잡에서 하나 이상의 파드를 생성하고 지정된 수의 파드가 성공적으로 종료될 때까지 계속해서 파드의 실행을 재시도한다.
- 파드가 성공적으로 완료되면, 성공적으로 완료된 잡을 추적한다.
- 지정된 수의 성공 완료에 도달하면, 작업(즉, 잡)이 완료된다.
- 잡을 삭제하면 잡이 생성한 파드가 정리된다.
- 작업을 일시 중지하면 작업이 다시 재개될 때까지 활성 파드가 삭제된다.
- 간단한 사례는 잡 오브젝트를 하나 생성해서 파드 하나를 안정적으로 실행하고 완료하는 것이다.
- 첫 번째 파드가 실패 또는 삭제된 경우(예로는 노드 하드웨어의 실패 또는 노드 재부팅) 잡 오브젝트는 새로운 파드를 기동시킨다.
- 잡을 사용하면 여러 파드를 병렬로 실행할 수도 있다.
- 잡을 스케줄에 따라 구동하고 싶은 경우(단일 작업이든, 여러 작업의 병렬 수행이든), 크론잡(CronJob)을 참고한다.
예시 잡 실행하기 (샘플 실행)
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl:5.34.0
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
다음 명령으로 실행한다.
kubectl apply -f https://kubernetes.io/examples/controllers/job.yaml
kubectl describe job pi
를 실행해서 잡 상태를 확인한다.
kubectl get pods --selector=job-name=pi --output=jsonpath='{.items[*].metadata.name}'