최대 1 분 소요

Job은 1회성 작업을 할때 사용한다.

1. 추가 설명

작업이 끝나도 Job과 Pod가 자동으로 삭제되지 않는다. 그래서 Job의 log를 확인할 수 있다
Job은 Contoller이기 때문에 node가 down되는 경우 새로운 node에 job을 recreate하지만, restart는 하지 않는다.

2. 생성 Example #1

apiVersion: batch/v1
kind: Job
metadata:
  name: job-1
spec:
  template:
    spec:
      restartPolicy: Never
      containers:
      - name: container
        image: kubetm/init
        command: ["sh", "-c", "echo 'job start';sleep 20; echo 'job end'"]
      terminationGracePeriodSeconds: 0

3. Job 삭제

$ kubectl delete -n default job job-1

4. 생성 Example #2

apiVersion: batch/v1
kind: Job
metadata:
  name: job-2
spec:
  completions: 6
  parallelism: 2
  activeDeadlineSeconds: 30
  template:
    spec:
      restartPolicy: Never
      containers:
      - name: container
        image: kubetm/init
        command: ["sh", "-c", "echo 'job start';sleep 20; echo 'job end'"]
      terminationGracePeriodSeconds: 0
  • completions : Job이 완료되기 위해 실행되어야 할 전체 pods 수

  • parallelism : 한번에 실행될 pods 수. default는 1
  • activeDeadlineSeconds : 해당 시간내에 전체 pods의 실행이 완료되지 않으면 강제로 pods를 삭제한다. (Hang걸리는 경우 를 대비하기 위한 강제종료 시간)