Kubernetes - Job, CronJob

Sungjin·2022년 3월 25일
0

Kubernetes

목록 보기
11/11
post-thumbnail

Job, CronJob - Kubernetes


이 글은 김태민님의 대세는 쿠버네티스 강의를 참고하여 정리하였습니다!

출처 : https://www.inflearn.com/course/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EA%B8%B0%EC%B4%88/dashboard


🔍 테스트해 볼 내용

  1. Job 구성

  2. CronJob 구성

    도커 이미지는 김태민님께서 만들어두신 이미지를 사용합니다.


    🚀 Job

    Job이라는 것이 무엇인지 알아봅시다.

    Pod가 만들어지는 경우는 다음과 같습니다.

  3. 직접 만드는 경우

  4. ReplicaSet을 사용해서 만드는 경우

  5. Job을 통해서 만드는 경우

모두 같은 Pod들이지만 어떤 경우에 의해 만들어졌냐에 따라 다르게 됩니다.

Node가 다운 될 때, Controller에 의해 만들어진 Pod는 다른 Node에 재생성되게 됩니다.

ReplicaSet에의해 RecreatePod가 구동하지 않을 경우 Restart까지 해줍니다.
즉, 서비스가 중단되지 않는 것을 목표로서 동작하는 것 입니다.
RestartPod는 그대로 유지시키고, Container만 재구동 시키는 것을 의미합니다.

Job에 의해 만들어진 Pod는 프로세스가 일을 하지 않으면 Finish시킵니다.
FinishPod를 지우는 것이 아닌, 노드의 자원을 사용하지 않겠다는 것을 뜻합니다.
FinishPod에 접속하여 Log 등을 확인할 수 있고 원하는 경우 직접 삭제할 수 있습니다.

이제 Job을 만들어 보도록합시다

Job1.yaml

apiVersion: batch/v1
kind: Job
metadata:
  name: job-1
spec:
  template:
    spec:
      restartPolicy: Never
      containers:
      - name: container
        image: kubetm/init
        command: ["sh", "-c", "echo 'job start';sleep 20; echo 'job end'"]
      terminationGracePeriodSeconds: 0

20초가 지나면 Job을 종료시키겠다는 것을 뜻합니다.

job이 만들어지면서 Pod또한 만들어진 것을 볼 수 있습니다.

Sat, 26 Mar 2022 02:29:22 에 Pod가 Running중인 것을 확인할 수 있습니다.

20초가 지나고 Pod의 상태를 확인해봅시다.

Pod가 종료된 것을 확인하였습니다.

이제, Pod에 접속해서 Log를 확인해보도록합시다!

kubectl logs -f pod/job-1-g5sfh

***

🚀 CronJob

CronJobJob들을 주기적으로 시간에 따라 생성을 하는 역할입니다.

Job을 하나 단위로 쓰지는 않고 CronJob을 만들어서 특정시간에 반복적으로 사용하기 위해서 만듭니다.

ex) 예약메일, 주기적인 Update확인.

1분마다 Job을 만드는 CronJob을 생성해보도록 합시다.

cj.yaml

apiVersion: batch/v1
kind: CronJob
metadata:
  name: cj
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: Never
          containers:
          - name: container
            image: kubetm/init
            command: ["sh", "-c", "echo 'job start';sleep 20; echo 'job end'"]
          terminationGracePeriodSeconds: 0

시간대를 주목하시면 1분마다 Job을 생성하는 것을 볼 수 있습니다!


이상으로 마치겠습니다. 🙋🏻‍♂️

profile
WEB STUDY & etc.. HELLO!

0개의 댓글