Backend Common
Kubernetes의 Job, CronJob
예발이
2024. 3. 3. 19:58
Job
Job은 설정한 작업이 정상적으로 완료되면 종료되고, 비정상적으로 끝나면 다시 실행하는 Pod들을 관리한다.
Job을 사용하면 여러 Pod들을 병렬로 실행할 수도 있다.
apiVersion: batch/v1
kind: Job
metadata:
name: centos-job
spec:
completions: 5 # 실행할 Pod의 수
parallelism: 2 # 동시에 실행되는 Pod 수
activeDeadlineSeconds: 15 # 작업에 대한 데드라인
template:
spec:
containers:
- name: centos-container
image: centos:7
command: ["bash"]
args:
- "-c"
- "echo 'Hello World'; sleep 5; echo 'Bye'"
restartPolicy: Never
CronJob
CronJob은 설정한 주기에 따라 주기적을 반복하는 Job을 만든다.
CronJon의 시간은 kube-controller-manager의 시간대를 기준으로 한다.
apiVersion: batch/v1
kind: CronJob
metadata:
name: cronjob-exam
spec:
schedule: "* * * * *" // 반복주기
startingDeadlineSeconds: 300
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- echo Hello; sleep 10; echo Bye
restartPolicy: Never