쿠버네티스 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}'