kubernets

 

이번 시간엔 Job 과 CronJob 에 대해 설명하도록 한다.

 

잡(Job)

  • 하나 이상의 파드를 생성하고, 지정한 명령어를 실행하면 종료된다.
  • 성공적으로 종료될 때 까지 계속해서 파드의 실행을 재시도 한다.
  • 파드가 성공적으로 완료되면 종료된다.

 

CLI 를 통해 대략적인 매니페스트 생성이 가능하다.

k create job throw-dice-job --image=kodekloud/throw-dice --dry-run=client -o yaml > throw-dice-job2.yaml

 

싱글 컨테이너 형식

apiVersion: batch/v1
kind: Job
metadata:
  name: math-add-job
spec:
  template:
    spec:
      containers:
      - name: math-add
        image: ubuntu
        command: ['expr', '3', '+', '2']

 

멀티 컨테이너 형식

apiVersion: batch/v1
kind: Job
metadata:
  name: math-add-job
spec:
  completions: 3
  parallelism: 3 # 병렬 처리
  backoffLimit: 6 # 실패 시 재시도 대기 시간 (6분간 대기함)
  template:
    spec:
      containers:
      - name: math-add
        image: ubuntu
        command: ['expr', '3', '+', '2']
      restartPolicy: Never

 

크론잡(CronJob)

  • 일정에 따라 주기적으로 동작시킨다.
  • 크론 스케줄 문법을 따른다.

 

# ┌───────────── 분 (0 - 59)
# │ ┌───────────── 시 (0 - 23)
# │ │ ┌───────────── 일 (1 - 31)
# │ │ │ ┌───────────── 월 (1 - 12)
# │ │ │ │ ┌───────────── 요일 (0 - 6) (일요일부터 토요일까지;
# │ │ │ │ │                                   특정 시스템에서는 7도 일요일)
# │ │ │ │ │
# │ │ │ │ │
# * * * * *

 

Kubernetes v1.21 버전 이상에서 사용할 수 있다.

매니페스트 파일은 다음과 같다.

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: reporting-cron-job
spec:
  schedule: "*/1 * * * *"
  jobTemplate: # 아래부터는 잡의 형태와 같다.
    spec:
      completions: 3
      parallelism: 3 # 병렬 처리
      template:
        spec:
          containers:
          - name: math-add
            image: ubuntu
            command: ['expr', '3', '+', '2']

 

크론잡은 jobTemplate 밑에 잡의 내용이 들어가는 식으로 작성된다.

잡과 크론잡은 이렇다 할 추가적 내용이 없는 것 같다. 필요하면 공식 문서를 참고해보는걸로~

 

section 6 는 이렇게 마무리..

다음은 section 7 Services & Networking