StatefulSet과 DaemonSet, 언제 어떤 워크로드를 써야 할까
Deployment까지 이해했다면, 이제 쿠버네티스의 워크로드 개념 중 조금 성격이 다른 두 가지를 볼 차례다.
바로 StatefulSet과 DaemonSet이다.
이 둘은 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를 중심으로
쿠버네티스 네트워킹의 기본 흐름을 정리해볼 예정이다.
'infra' 카테고리의 다른 글
| 쿠버네티스 requests와 limits 개념 정리: 리소스 관리와 OOM 방지 (0) | 2026.02.06 |
|---|---|
| 쿠버네티스 Service와 Ingress 개념 정리: 외부 트래픽 흐름 이해하기 (0) | 2026.02.05 |
| 쿠버네티스 Deployment와 ReplicaSet 개념 정리: 배포의 기본 구조 (0) | 2026.02.03 |
| 쿠버네티스 핵심 구성 요소 정리: Pod, Node, Cluster 이해하기 (0) | 2026.02.02 |
| 쿠버네티스란 무엇인가? 도커 다음 단계로 이해하는 기본 개념 (1) | 2026.02.01 |