쿠버네티스 Job, CronJob 개념 및 설정

ZER0·2023년 1월 17일
0

Kubernetes

목록 보기
35/39
post-thumbnail

1. 개념

  • 특정 작업을 수행하기 위한 목적으로 사용하는 오브젝트로, 특정 액션을 수행하는 임시 파드 정도로 생각하면 적절
  • 주기적으로 특정 액션을 수행해야 할 경우 cronjob을 사용

2. Job, CronJob 설정

  • Job
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    apiVersion: batch/v1
    kind: Job
    metadata:
      name: pi
    spec:
      template:
        spec:
          containers:
          - name: pi
            image: perl:5.34.0
            command: ["perl",  "-Mbignum=bpi""-wle""print bpi(2000)"]
          restartPolicy: Never
      backoffLimit: 4
    cs
  • CronJob
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    apiVersion: batch/v1
    kind: CronJob
    metadata:
      name: hello
    spec:
      schedule: "* * * * *"
      jobTemplate:
        spec:
          template:
            spec:
              containers:
              - name: hello
                image: busybox:1.28
                command:
                - /bin/sh
                - -c
                - date; echo Hello from the Kubernetes cluster
              restartPolicy: OnFailure
    cs

3. 세부 옵션

  • .spec.completions : 몇개의 job이 complete되어야 완료된 것인지 정의
  • .spec.parallelism : 최초에 병렬적으로 생성할 job의 개수
  • .spec.backoffLimit : job의 작업이 실패할 경우에 재시도할 횟수
  • .spec.activeDeadlineSeconds : job이 시작된 후 작동 가능한 유효 시간
  • .spec.template.spec.restartPolicy : 에러 발생 시 재시작 옵션
    • Always : 항상 재시작
    • OnFailure : 장애 발생 시 재시작
    • Never : 재시작하지 않음

4. 참고

  1. https://www.udemy.com/course/certified-kubernetes-application-developer/
  2. https://kubernetes.io/docs/concepts/workloads/controllers/job/
profile
Security Compliance Engineer

0개의 댓글