infra

쿠버네티스 StatefulSet과 DaemonSet 차이점 정리: 언제 써야 할까

mirabo01 2026. 2. 4. 09:51

StatefulSet과 DaemonSet, 언제 어떤 워크로드를 써야 할까

Deployment까지 이해했다면, 이제 쿠버네티스의 워크로드 개념 중 조금 성격이 다른 두 가지를 볼 차례다.
바로 StatefulSetDaemonSet이다.

이 둘은 Deployment만으로는 해결하기 어려운 요구사항을 다루기 위해 존재한다.
실무에서 자주 쓰이진 않지만, 필요해지는 순간이 분명히 있는 리소스다.


Deployment로 해결되지 않는 요구사항들

실제로 쿠버네티스를 쓰다 보면 이런 요구가 나온다.

  • Pod마다 고정된 이름과 순서가 필요하다
  • Pod마다 각각의 스토리지를 가져야 한다
  • 특정 애플리케이션은 모든 Node에서 반드시 하나씩 실행되어야 한다

이런 요구를 Deployment로 억지로 해결하려고 하면
설정이 복잡해지고, 운영이 불안정해진다.

이 지점에서 StatefulSet과 DaemonSet이 등장한다.


StatefulSet: 상태를 가진 애플리케이션을 위한 선택

StatefulSet은 이름 그대로 상태(state)를 가지는 워크로드를 위한 리소스다.

StatefulSet은 Pod의 “정체성”을 유지해준다.

StatefulSet의 핵심 특징

  • Pod 이름이 고정된다
    예: db-0, db-1, db-2
  • Pod마다 독립적인 PersistentVolume을 가진다
  • Pod 생성/삭제 순서가 보장된다

이 특징 덕분에 다음과 같은 작업이 가능해진다.

  • 데이터베이스 클러스터
  • 메시지 큐
  • 검색 엔진 노드 구성

StatefulSet을 실제로 써보면 느끼는 점

StatefulSet은 분명 강력하지만,
Deployment보다 운영 난이도가 높다.

실제로 써보면 이런 점을 느끼게 된다.

  • Pod 하나를 지우는 것도 조심스럽다
  • 스토리지 설정이 전체 구조에 큰 영향을 준다
  • 스케일 인/아웃이 단순하지 않다

⚠️ 상태를 가진 애플리케이션을 쿠버네티스에 올린다는 것 자체가
운영 부담을 증가시킬 수 있다는 점은 항상 염두에 둬야 한다.

그래서 실무에서는
“정말 쿠버네티스 위에 올려야 하는가?”를 먼저 고민하는 경우도 많다.


DaemonSet: 모든 Node에 하나씩 실행해야 할 때

DaemonSet은 목적이 아주 명확한 리소스다.

DaemonSet은 “각 Node마다 Pod 하나를 반드시 실행”한다.

DaemonSet의 특징

  • Node가 추가되면 Pod도 자동으로 추가된다
  • Node가 제거되면 Pod도 함께 사라진다
  • replicas 개념이 없다

DaemonSet은 보통 애플리케이션보다는 인프라 성격의 작업에 쓰인다.


DaemonSet의 대표적인 사용 사례

실무에서 DaemonSet은 이런 경우에 등장한다.

  • 로그 수집 에이전트
  • 모니터링 에이전트
  • 노드 단위 네트워크/보안 컴포넌트

이런 작업들은
“특정 Pod가 몇 개 필요한가”가 아니라
“Node마다 하나는 꼭 필요하다”가 핵심이다.

Deployment로도 흉내는 낼 수 있지만,
Node 증감에 자동으로 대응하는 구조를 만들기는 쉽지 않다.


StatefulSet vs DaemonSet vs Deployment 정리

간단히 정리하면 다음 기준으로 나뉜다.

  • Deployment
    • 무상태 애플리케이션
    • 웹 서버, API 서버
  • StatefulSet
    • 상태를 가진 서비스
    • 데이터베이스, 클러스터형 시스템
  • DaemonSet
    • Node 단위로 반드시 실행되어야 하는 작업
    • 로그, 모니터링, 에이전트

워크로드 선택은 “기능”보다 “운영 요구사항”을 기준으로 판단하는 게 좋다.


정리하며

이번 글에서는 쿠버네티스 워크로드 중
StatefulSet과 DaemonSet을 중심으로 살펴봤다.

  • StatefulSet은 Pod의 정체성과 상태를 보장한다
  • DaemonSet은 모든 Node에 하나씩 실행된다
  • Deployment는 여전히 가장 범용적인 선택이다

다음 글에서는
이 워크로드들이 외부와 어떻게 통신하는지,
Service와 Ingress를 중심으로
쿠버네티스 네트워킹의 기본 흐름을 정리해볼 예정이다.