Kubernetes/KoudKloud - CKAD with Tests

Job/CronJob 관련 명령어

비번변경 2021. 12. 8. 19:41

Job은 특정 개수의 포드가 성공적으로 완료되는 것을 보장하며, 실행한 포드가 실패, 하드웨어 장애 발생, 노드 재부팅 등과 같은 문제 발생 시 자동으로 포드를 재실행한다. 주로 실행 후 종료되어야 하는 작업을 실행시킬 때 사용한다.

이 글에서는 job을 생성, 삭제, 수정 및 정보를 확인하는 방법에 대해 정리한다.

 

Job 생성

create 명령을 이용해 Job을 생성한다.

kubectl create job <NAME> --image=<IMAGE_NAME>

# 예시
kubectl create job throw-dice-job --image=kodekloud/throw-dice

kubectl create job &lt;NAME&gt; --image=&lt;IMAGE_NAME&gt;

 

Job 목록 확인

Job의 이름, 완료 여부 등을 확인할 수 있다.

kubectl get jobs.batch

kubectl get jobs.batch

 

Job 상세 정보 확인

포드를 완료할 때까지 포드를 재실행한 횟수 등의 정보를 확인할 수 있다.

kubectl describe jobs.batch <NAME>

# 예시
kubectl describe jobs.batch throw-dice-job

kubectl describe jobs.batch &lt;NAME&gt;

 

Job 수정 - 완료 횟수 지정

edit 명령으로 수정할 수 없으므로 job 삭제 후 재생성이 필요하다.

yaml 파일의 .spec.completions 필드를 추가 또는 수정한다.

apiVersion: batch/v1
kind: Job
metadata:
  creationTimestamp: null
  name: throw-dice-job
spec:
  completions: 3
  template:
    metadata:
      creationTimestamp: null
    spec:
      containers:
      - image: kodekloud/throw-dice
        name: throw-dice-job
        resources: {}
      restartPolicy: Never
status: {}

Job 수정 - 완료 횟수 지정

 

Job 수정 - 병렬 실행

yaml 파일의 .spec.parallelism 필드를 추가 또는 수정한다.

apiVersion: batch/v1
kind: Job
metadata:
  creationTimestamp: null
  name: throw-dice-job
spec:
  completions: 3
  parallelism: 3
  template:
    metadata:
      creationTimestamp: null
    spec:
      containers:
      - image: kodekloud/throw-dice
        name: throw-dice-job
        resources: {}
      restartPolicy: Never
status: {}

 

Job 삭제

delete 명령으로 삭제한다.

kubectl delete jobs.batch <NAME>

# 예시
kubectl delete jobs.batch throw-dice-job

 

CronJob 생성

create cronjob 명령으로 생성할 수 있다.

kubectl create cronjob NAME --image=image --schedule='0/5 * * * ?' -- [COMMAND] [args...]

# 예시
kubectl create cronjob throw-dice-cron-job --image=kodekloud/throw-dice --schedule='30 21 * * *'

 

 


참고 문서

https://kubernetes.io/ko/docs/concepts/workloads/controllers/job/

 

잡에서 하나 이상의 파드를 생성하고 지정된 수의 파드가 성공적으로 종료될 때까지 계속해서 파드의 실행을 재시도한다. 파드가 성공적으로 완료되면, 성공적으로 완료된 잡을 추적한다. 지정

kubernetes.io

https://kubernetes.io/ko/docs/concepts/workloads/controllers/cron-jobs/