Cloud Architect 꿈꾸기

Cloud Computing/Kubernetes

Kubernetes - DaemonSet, Job, CronJob

HwanJae 2021. 1. 18. 16:02

Controller의 마지막으로 DaemonSet과 Job, CronJob에 대해 알아보려한다.

 

DaemonSet

통상 ReplicaSet을 사용할 경우 각 노드에 자원이 다르게 남아있는 상태에서 Pod를 배치할 때 자원이 많이 남아있는 노드부터 Pod를 배치하게 된다.

반면 DaemonSet은 자원상테에 상관없이 모든 노드에 Pod를 하나씩 생성하는 특징이 있다.

  • 각 노드들의 성능 상태를 감시하기 위한 성능 수집 (ex. Prometheus)
  • 특정 노드에 장애가 발생했을 경우 로그를 수집하기 위한 용도 (ex. fluentd)
  • 네트워킹 관리를 하기 위해 각 노드에 DaemonSet으로 프록시 역할을 하며 네트워크를 관리하기 위한 스토리지 활용 용도 (ex. GlusterFS)

등에 대표적으로 사용하곤 한다.


Job

Job으로 생성된 Pod는 프로세스가 일을 하지 않는 경우 종료시킨다.

다만 Pod를 바로 삭제하는 것은 아니며 자원을 사용하지 않는 상태로 멈춰두기 때문에 로그를 확인하고자 할 경우 해당 Pod안에 진입해서 확인이 가능하다. 확인이 끝난 후에는 직접 Pod를 삭제할 수 있다.


CronJob

CronJob은 Job을 주기적으로 생성하는 역할을 한다.

대표적으로는

  • 매일 정기적으로 백업이 필요한 경우
  • 주기적으로 업데이트가 필요한 경우
  • 예약 메일의 발송

에 사용된다.