Orchestration/Kubernates (k8s)

Kubernetes Controller 종류와 장단점

chanstory 2023. 2. 16. 21:29
반응형

 

  • ReplicationController
  • Deployment
  • Statefulset 
  • DaemonSet
  • Job
  • CronJob

 

ReplicationController

Pod의 복제본 수를 유지하고 관리하는 컨트롤러 지정된 수의 Pod 본제본을 유지하고,
Pod가 삭제되거나 장애가 발생한 경우새로운 Pod를 자동으로 생성한다.

장점
- 쉽게 구성이 가능하며, 안정적이고 예측가능한 작동이 가능하다.
단점
- 업그레이드나 롤백 작업과 같은 변경 사항이 발생할 때 수동으로 처리해야 하는 한계가 있다.

 

Deployment

ReplicationController 의 업그레이드된 버전으로, Rolling Update와 같은 전략을
통해 Pod를 업데이트할 수 있다. 
pod의 롤아웃을 관리하고 여러개의 ReplicationController를 사용하여 무중단 업그레이드 수행

장점
- 업그레이드나 롤백 작업과 같은 변경 사항을 롤아웃 전략을 통해 자동으로 처리할 수 있다.
단점
- Deployment 컨트롤러를 사용하면 Pod 수가 자동으로 증가하므로 클러스터가 부하를 받을 수 있다.

 

 

StatefulSet

동일한 Pod 스펙을 가진 서로 다른 버전의 StatefulSet을 유지하는 컨트롤러 이다.
Pod에 고유한 식별자를 할당하여, 각 Pod를 일관되고 예측 가능한 방식으로 관리 할 수 있다.

장점
- 고유한 식별자를 통해 일관되고 예측 가능한 방식으로 Pod를 관리할 수 있다.
   데이터 베이스와 같은 상태를 가지는 어플리케이션을 관리하기에 적합하다
단점
- Pod의 순서가 중요한 경우, 순서를 지정하는 것이 어려울 수 있다.

 

 

DaemonSet

모든 노드에 Pod를 배치하는 컨트롤러이다. 
DaemonSet은 각 노드에 반드시 실행되어야 하는 시스템 데몬이나 로깅 에이전트와 같은
어플리케이션을 관리하기에 적합하다.

장점
- 모든 노드에 Pod를 배치하여 시스템 데몬이나 로깅 에이전트와 같은 어플리케이션 관리 적합하다.
단점
- 노드에 새로운 레이블을 추가하거나 노드에서 레이블을 제거할 경우, DaemonSet을 업데이트 해야하는
  번거로움이 있다.

 

 

Job

일회성 작업을 관리하는 컨트롤러 이다.
한번 실행되고 종료되는 Pod를 생성며 Pod의 성공 또는 실패 상태를 기록한다.
Job은 배치 작업이나 배치 처리 작업에 적합하다.

장점
- 일회성 작업을 관리하기에 적합, 배치 작업이나 배치 처리 작업에 적합
단점
- 일회성 작업이므로, 실패한 작업이 다시 실행되지 않을 수 있다.

 

 

CronJob

스케줄링된 작업을 관리하는 컨트롤러이다.
지정된 시간에 주기적으로 Job을 실행하도록 예약할 수 있다.

장점
- 일정 주기로 실행되어야 하는 작업 관리에 적합하다.
단점
- 다른 작업과 충돌이 발생할 수 있다.
   스케줄링에 대한 오류가 발생할 수 있다.

 

 

반응형