Job
1회성 작업에 사용됨
- DB 마이그레이션과 같이 한번의 작업으로 처리가 끝나는 것
- 어플리케이션 오류나 예외로 실패했을 때는 성공할때까지 Job 컨트롤러가 파드를 다시 만든다
- 파일을 수정하고자 하면 삭제 후 다시 apply 해야한다.
- job 하나가 여러개의 Pod를 실행하게 할 수 있다.
Cron Job
주기적인 배치 작업을 실행할 때 사용됨
- 저장소 백업, 메일 송신 등과 같은 처리에 사용됨
- 리눅스, 유닉스의 Cron 과 비슷함
- Job의 실행 스케줄링을 설정할 수 있음
job 예제코드
apiVersion: batch/v1
kind: Job
metadata:
name: job.yaml
spec: ## 1회성 작업
template:
spec:
containers:
- name: job
image: alpine-curl
imagePullPolicy: IfNotPresent
command: [ /bin/sh, -c,curl --connect-timeout 300 --max-time 300 -L -X GET https://localhost:8080/api/v1/schedule/point/job ]
restartPolicy: OnFailure
cron job 예제코드
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: cron-job.yaml
spec:
schedule: "0 0 1 1,4,7,10 *" # 분기별 1, 4, 7, 10월 - 1일 0시 0분에
concurrencyPolicy: Replace
jobTemplate:
spec:
template:
spec:
containers:
- name: cron-job
image: alpine-curl
imagePullPolicy: IfNotPresent
command: [/bin/sh, -c,curl --connect-timeout 300 --max-time 300 -L -X GET https://localhost:8080/api/v1/schedule/point/cron-job]
restartPolicy: OnFailure
잡 실행하기
kubectl apply -f job.yaml
잡 확인하기
kubectl get jobs
잡 상세정보 확인하기
# kubectl describe job {job name}
kubectl describe job cron-job
잡 삭제하기
kubectl get job
kubectl delete job {job name}
kubectl get cronjob
kubectl delete cronjob {cronjob name}
cron job
https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#deleting-a-cron-job
반응형
'공부 > Kubernetes' 카테고리의 다른 글
Mac OS brew uninstall 오류/ Mac OS 패키지 삭제 - Error: No such keg: /opt/homebrew/Cellar/redis (0) | 2023.05.02 |
---|---|
[Helm] helm 으로 Grafana, Redis 설치하고 Grafana에 Redis 연결하기 (0) | 2023.04.28 |
[Helm] Mac에 Helm 설치하기 (0) | 2023.04.21 |
[k8s] node-shell (Github Plugins) (0) | 2023.03.28 |
[Kafka] class is not in the trusted packages. (0) | 2022.05.16 |