'15단계로 배우는 도커와 쿠버네티스' 기반으로 내용 정리하였습니다.
잡 컨트롤러는 파드에 있는 모든 컨테이너가 정상적으로 종료할 때까지 재실행한다.
그리고 크론잡은 UNIX의 크론과 같은 포맷으로 실행 스케줄을 지정할 수 있는 컨트롤러다.
( 로그 백업을 위해 도는 cron!! )
(1) 잡 컨트롤러의 동작과 사용 시 주의점
잡 컨트롤러를 사용할 때 주의할 점!
(2) 스케줄에 따라 파드를 제어하는 크론잡
크론잡은 지정한 시각에 잡을 만든다.
그렇게 생성된 파드의 개수가 정해진 수를 넘어서면 가비지 수집 컨트롤러가 종료된 파드를 삭제한다.
잡 활용 예
(1) 동시 실행과 순차 실행
복수의 노드 위에서 여러 개의 파드를 동시에 실행하여 배치 처리를 빠르게 동시 실행할 수 있다.
예 ) 대량 메일 발송, 대량 데이터를 포함하는 KVS형 데이터 베이스 검색 등
한편, 파드의 동시 실행 수를 늘려도 리소스에 대한 경쟁이 심화되어 오히려 처리가 느려지는 경우도 있으니
주의해야 한다.
(2) 파드를 실행할 노드 선택
매니페스트에 CPU 아키텍처, 코어 수, 메모리 요구량, 노드 실렉터 라벨 등이 기재된다. (Job)
마스터 노드의 스케줄러는 기재된 조건을 만족하는 적절한 노드를 선택해서 파드를 배치한다.
(3) 온라인 배치 처리 요청
메시지 브로커와 잡을 활용하여 웹을 통해 배치 처리를 요청할 수 있다.
(4) 정기 실행 배치 처리
잡의 실행 수와 동시 실행 수
잡 컨트롤러의 기본 설정인 실행수(Completions)와 동시 실행수(Parallelism)에 대해 알아보자.
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
[ 배치 잡 API ]
[ 잡 컨트롤러의 사양 ]
크론잡
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
restartPolicy: OnFailure
[ 크론잡 API ]
[ 크론잡 사양 ]