반응형
CronJob은 특정 잡을 주기적으로 실행 시킬 때 사용합니다.
주기적으로 파드를 띄워 프로그램을 실행/종료를 반복합니다.
이번 포스팅에서는 간단한 Cronjob을 실행해봅니다.
목차
1. cronjob.yml 작성
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "* * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- date; echo Hello Wolrd!
restartPolicy: OnFailure
위 크론잡은 "* * * * *" 형식의 크론표현식을 사용합니다.
# ┌───────────── 분 (0 - 59)
# │ ┌───────────── 시 (0 - 23)
# │ │ ┌───────────── 일 (1 - 31)
# │ │ │ ┌───────────── 월 (1 - 12)
# │ │ │ │ ┌───────────── 요일 (0 - 6) (일요일부터 토요일까지;
# │ │ │ │ │ 특정 시스템에서는 7도 일요일)
# │ │ │ │ │ 또는 sun, mon, tue, wed, thu, fri, sat
# │ │ │ │ │
# * * * * *
참고: https://kubernetes.io/ko/docs/concepts/workloads/controllers/cron-jobs/
그리고 busybox라는 간단한 테스트용도의 도커이미지를 통해 쉘 명령어를 실행하도록 했습니다.
2. 실행
~ kubectl apply -f cronjob.yml
3. 실행 확인
~ kubectl get jobs -n api
NAME COMPLETIONS DURATION AGE
dev-hello-28529895 1/1 4s 9m16s
dev-hello-28529896 1/1 5s 8m16s
위와 같이 실행 확인 가능합니다.
(만약 ArgoCD를 사용한다면 아래와 같이 표시되네요!)
4. 유용한 옵션
ArgoCD 페이지를 보면 cronjob을 통한 pod 내역이 많이 표시됩니다.
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "* * * * *"
successfulJobsHistoryLimit: 10
...(중략)
위와같이 successfulJobsHistoryLimit: 10 옵션을 통해 Job 내역 표시를 제한할 수 있습니다.
반응형
'개발 이야기 > Kubernetes' 카테고리의 다른 글
Kubernetes ConfigMap with Springboot (0) | 2024.04.10 |
---|---|
Telepresence 사용해보기 (0) | 2024.04.03 |
Kubernetes HPA 설정하기 (0) | 2024.03.30 |
Docker Image를 Minikube 로드하기 (0) | 2024.03.24 |
ArgoCD를 통해서 Application 배포 (0) | 2024.03.24 |