kok202
쿠버네티스 입문 - 02 - 컨트롤러 5 - 잡

2020. 4. 4. 03:23[정리] 기능별 개념 정리/Kubernetes

실행된 후 종료해야 하는 성격의 작업을 실행 시킬 때 사용하는 컨트롤러이다.

특정 개수의 파드를 정상적으로 실행 종료한다는 것을 보장 할 수도 있다.

 

 

 

잡 Sample

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

.spec.backoffLimit : 잡 실행이 실패했을 때 최대 몇번까지 재시작할 것인지 설정한다.

.spec.parallelism : 잡 하나에 몇개의 파드를 동시에 실행할지 명시한다.

.spec.completions : 정상적으로 실행 종료 되어야하는 파드의 개수를 명시한다.

.spec.activeDeadlineSeconds : 특정 시간을 지정해서 잡, 파드 실행을 종료한다.

.spec.template.spec.restartPolicy : 파드 안의 컨테이너가 비정상 종료 됬을 경우 다시 시작 하도록 한다. Nerver, OnFailure ... 

 

 

 

잡의 종류 

parallelism 설정 x completions 설정 x 인 경우 : 단일 잡

parallelism 설정 x completions 설정 o 인 경우 : 완료 개수가 있는 병렬잡

parallelism 설정 o completions 설정 x 인 경우 : 워크 큐가 있는 병렬잡

 

 

 

잡 패턴

잡을 생성하는데 드는 오버헤드를 의식하는 것이 좋다.

잡이 돌아가는 파드를 생성하는데 드는 오버헤드를 의식하는 것이 좋다.

- 작업 하나가 여러개 작업을 처리하는 것이 좋다.

- 작업 개수 만큼의 파드를 생성하는 것보다 파드 하나가 여러개의 작업을 처리하는 것이 좋다.

- 워크 큐를 사용한다면 카프카나 RabbitMQ 같은 큐서비스로 워크 큐를 구현하도록 변경하는 것이 좋다.