반응형
CronJob 이란
- CronJob은 정해진 시간 간격에 따라 작업(Job)을 주기적으로 실행할 수 있도록 하는 Kubernetes 리소스입니다. 일반적인 예로는 데이터베이스 백업, 로그 정리, 주기적인 보고서 생성 등이 있습니다
CronJob의 구성 요소
구성 요소 | 설명 |
Schedule | 작업 실행 주기를 설정하는 Cron 표현식 |
Job Template | 실행할 작업의 템플릿을 정의 |
Concurrency Policy | 작업의 동시 실행 정책 (Allow, Forbid, Replace) |
Starting Deadline | 작업이 시작될 수 있는 최대 지연 시간 (초 단위) |
- concurrencyPolicy 옵션
- Allow: 이전 작업이 실행 중일 때 새로운 작업을 시작합니다.
- Forbid: 이전 작업이 완료될 때까지 새로운 작업을 시작하지 않습니다.
- Replace: 이전 작업이 실행 중이면 이전 작업을 중단하고 새로운 작업을 시작합니다.
예제
- Kind : CronJob 사용
- Schedule -> Job Template -> Concurrency Policy , Starting Deadline
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: no-concurrency-cronjob
spec:
schedule: "0 * * * *"
concurrencyPolicy: Forbid
startingDeadlineSeconds: 60
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- echo "Hello, World!"
restartPolicy: OnFailure
Schedule 문법
# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)
# │ │ │ │ │ OR sun, mon, tue, wed, thu, fri, sat
# │ │ │ │ │
# │ │ │ │ │
# * * * * *
- Kubernetes 사용하게 되면 Pod내에서는 Cron을 사용하기엔 어려우니 CronJob을 통하여 작업 일정 예약하여 사용하시면 됩니다.
- 참고 공식 문서
https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/
반응형
'kubernetes' 카테고리의 다른 글
Kubernetes Containerd 데이터 경로 변경 (0) | 2024.08.09 |
---|---|
Kubernetes Containerd GPU 사용 방법 (0) | 2024.08.09 |
Kubernetes Postgres DataBase Backup (0) | 2024.07.05 |
k3s 설치 가이드 (0) | 2024.06.13 |
Kubernetes EFK Helm (0) | 2024.05.03 |