주기적으로 실행하는 쿠버네티스 오브젝트이고, 특정 시간 간격으로 잡(지정된 업무)를 ㅈ반복적으로 실행할 수 있다.
1분마다 date의 결과 값을 출력
#분 시 일 월 요일
* * * * *
*/2 * * * *
1 * * * *
apiVersion: batch/v1
kind: CronJob
metadata:
name: testcron
spec:
schedule: "*/1 * * * *" # 1 / 1 min
jobTemplate:
spec:
template:
spec:
restartPolicy: Never
containers:
- name: testcronctn
image: busybox
args: ["sh", "-c", "date"]
root@manager:~/k8slab/etc# kubectl get pod -w
NAME READY STATUS RESTARTS AGE
testcron-27718755-rktd6 0/1 ContainerCreating 0 9s
testcron-27718755-rktd6 0/1 Completed 0 17s
testcron-27718755-rktd6 0/1 Completed 0 17s
testcron-27718756-jv7wr 0/1 Pending 0 0s
testcron-27718756-jv7wr 0/1 Pending 0 0s
testcron-27718756-jv7wr 0/1 ContainerCreating 0 0s
testcron-27718756-jv7wr 0/1 ContainerCreating 0 1s
testcron-27718756-jv7wr 0/1 Completed 0 11s
testcron-27718756-jv7wr 0/1 Completed 0 11s
^Croot@manager:~/k8slab/etc# kubectl get jobs
NAME COMPLETIONS DURATION AGE
testcron-27718755 1/1 17s 112s
testcron-27718756 1/1 11s 52s
cronjob은 모든 히스토리를 기록하지는 않는다. 성공한 job 3개, 실패한 job 1개만 기본적으로 기록한다.
이후 삭제
kubectl delete -f cron.yaml