[k8s] Job, CronJob

전우석·2022년 6월 23일
0
post-thumbnail

Job

Job은 배치성 작업을 진행하기 위한 Controller로 계속 실행되야 하는 작업이 아닌 실행이되고 종료가 되어야 하는 작업을 진행할 때 사용된다.
모니터링은 job을 통해 실행해야되며 이 글에서는 pod 상태와 job의 상태를 확인을 위해 사용된다.

watch -n1 kubectl get pods -o wide --show-labels
watch -n1 kubectl get job -o wide --show-labels

단일 Job

yaml 파일 작성

vi testapp-job.yaml

Job 생성 및 확인

kubectl create -f testapp-job.yaml

다중 Job

yaml 파일 작성

completions를 사용하여 3번의 sleep 작업을 실행하도록 설정하였다.

vi testapp-job-comp.yaml

Job 생성 및 확인

kubctl create -f testapp-job-comp.yaml

병렬 다중 Job

yaml 파일 작성

completions, parallelism를 사용해서 3번의 작업을 동시에 진행하도록 설정하였다.

vi testapp-job-para.yaml

Job 생성 및 확인

node1의 문제가 있어 image를 받아오지 못하고 있다. 그렇기 때문에 job 모니터링 부분에 1개의 작업은 끝나지 않을 것이다.

kubectl create -f testapp-job-para.yaml


CronJob

Linux의 Crontab과 유사한 Controller로 Job을 시간 기준으로 관리한다.
Job의 설정과 비슷하고 schedule을 통해 주기를 관리한다.
모니터링은 기존의 job이 아닌 cronjob으로 실행해야된다.

watch -n1 kubectl get cronjob -o wide --show-labels

yaml 파일 작성

schedule은 [분 시 일 월 년]으로 구분된다.
매분마다 sleep를 실행하도록 설정했다.

vi testapp-cronjob.yaml

CronJob 생성 및 확인

kubectl create -f testapp-cronjob.yaml


Job, CronJob 삭제

kubectl delete job [job 이름]
kubectl delete cronjob [job 이름]

업로드중..

0개의 댓글