안녕하세요. 이쁜이와멋쟁이의 BTC_기범입니다.
오늘은 쿠버네티스에서 작업을 위한 파드를 생성하고
작업 완료 후 파드를 제거할 수 있는 Jobs과
주기적인 작업을 위한 Cronjob에 대해 알아보겠습니다.
Jobs
Jobs는 특정 작업을 실행하기위해 하나 이상의 파드를 생성하여 작업을 완료한 후 파드를 중지시키거나 제거하여 리소스를 효과적으로 사용하고 성공적인 작업을 돕는 워크로드입니다.
Jobs 예시
apiVersion: batch/v1
kind: Job
metadata:
name: test
spec:
template:
spec:
containers:
- name: test
image: busybox
command: ["/bin/sh", "-c", "echo good > /result.log"]
restartPolicy: Never
backoffLimit: 4 #성공한 때까지 재시도 횟수
위 예시를 이용하면 작업을 위해 생성된 파드가 command를 완료하고 정지하는 것을 확인할 수 있습니다.
Jobs를 통해 비주기적인 테스트 또는 작업 진행하거나 프로세스를 보관할 수 있습니다.
Cronjob
Jobs와 비슷하지만 차이점은 반복 일정을 설정할 수 있다는 것입니다.
Jobs의 위크로드에 크론탭의 기능을 병합하였다고 느낄 수 있습니다.
Crojob 예시
apiVersion: batch/v1
kind: CronJob
metadata:
name: test
spec:
schedule: "* * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: test
image: busybox
imagePullPolicy: IfNotPresent
command: ["/bin/sh", "-c", "echo test"]
restartPolicy: OnFailure
Jobs의 spec과 Cronjob의 spec.jobTemplate.spec이 동일한 구성을 보인다는 것을 확인할 수 있습니다.
또한 spec.schedule 부분을 통해 매 분마다 spec.jobTemplate에 작성된 작업이 실행되도록 설정되어있는 확인할 수 있습니다.
spec.schedule의 작성방법은 크론탭 작성방법과 같습니다.
각각의 자리는 " '분' '시' '일' '월' '요일' " 을 의미합니다.
분은 0-59, 시는 0-23, 일은 0-31, 월은 1-12, 요일은 0-7 범위에서 설정 가능합니다.
모든 범위에서 실행을 원할 경우 예시와 같이 " * "을 통해 표현할 수 있습니다.
지금까지 쿠버네티스에서 작업을 도와줄 수 있는 Jobs와 Cronjob에 대해 알아보았습니다.
Jobs와 Cronjob을 이용하여 좀 더 편한 작업을 진행하셨으면 좋겠습니다.
감사합니다.
'IT KNOWLEDGE' 카테고리의 다른 글
프로젝트 아키텍트 (2) | 2023.11.09 |
---|---|
[Youtube API] Chat GPT 연동하기 (1) | 2023.10.26 |
GB와 GiB의 차이점 (0) | 2023.10.16 |
[Youtube API] 동영상의 조회수와 좋아요 수 업데이트하기 (0) | 2023.10.11 |
32비트와 64비트 (0) | 2023.10.06 |
댓글