4.2. DaemonSets (데몬 세트)
개요
DaemonSets 페이지는 MCM 컨트롤 플레인에서 관리하는 모든 DaemonSet을 통합적으로 관리하는 페이지입니다. DaemonSet은 클러스터의 모든 노드(또는 특정 노드)에서 파드가 실행되도록 보장하는 워크로드입니다.
주요 목적:
- 멀티클러스터 DaemonSet 통합 관리
- 클러스터별 노드 스케줄링 상태 모니터링
- DaemonSet 생성, 수정, 삭제
- 노드 셀렉터 기반 파드 배포 관리
- PropagationPolicy 및 OverridePolicy 확인
DaemonSet 사용 사례:
- 로그 수집 에이전트 (예: fluentd, filebeat)
- 모니터링 에이전트 (예: node-exporter, datadog-agent)
- 스토리지 데몬 (예: ceph, glusterd)
- 네트워크 플러그인 (예: calico, flannel)
화면 구성
DaemonSets 페이지는 테이블 형태로 DaemonSet 목록을 표시합니다.

페이지 상단 요소
| 요소 | 설명 |
|---|---|
| 네임스페이스 필터 | 특정 네임스페이스의 DaemonSet만 표시 |
| 새로고침 버튼 | DaemonSet 목록 갱신 |
| 생성 버튼 | 새 DaemonSet 생성 다이얼로그 열기 |
| 검색창 | DaemonSet 이름으로 검색 |
테이블 컬럼
| 컬럼 | 설명 | 정렬 |
|---|---|---|
| 이름 | DaemonSet 이름 | ✅ |
| 네임스페이스 | DaemonSet이 속한 네임스페이스 | ✅ |
| 상태 | Ready 파드 수 / 원하는 파드 수 | ✅ |
| 파드 | 현재/원하는 수/준비됨 상태 표시 | ✅ |
| 노드 셀렉터 | 노드 선택 조건 (없으면 "-") | ✅ |
| 이미지 | 컨테이너 이미지 이름 | ✅ |
| 경과시간 | DaemonSet 생성 후 경과 시간 | ✅ |
| 작업 | 편집/삭제 버튼 | - |
상태 표시
상태 컬럼은 Ready 수 / 원하는 수 형식으로 표시됩니다:
- 13/13: 13개 노드에 모두 파드가 Ready 상태
- 10/13: 13개 노드 중 10개만 Ready 상태
파드 정보
파드 컬럼은 DaemonSet의 상세 파드 현황을 표시합니다:
- 현재: 현재 스케줄된 파드 수
- 원하는 수: 스케줄되어야 하는 파드 수
- 준비됨: Ready 상태의 파드 수
DaemonSet 상세 정보
DaemonSet 행을 클릭하면 상세 정보 패널이 열립니다.

상세 패널 헤더
| 요소 | 설명 |
|---|---|
| DaemonSet 이름 | 선택한 DaemonSet 이름 |
| 네임스페이스 | DaemonSet이 속한 네임스페이스 |
| 동기화 상태 | N/N 노드 준비 현황 |
액션 버튼
| 버튼 | 기능 |
|---|---|
| 새로고침 | DaemonSet 정보 갱신 |
| 편집 | YAML 편집 모드 |
| 삭제 | DaemonSet 삭제 |
참고: DaemonSet은 각 노드에 하나의 파드를 실행하므로 Deployment와 달리 스케일 버튼이 없습니다.
탭 메뉴
개요 탭
DaemonSet의 기본 정보, 노드 스케줄링 상태, 업데이트 전략 정보를 표시합니다.
기본 정보:
| 항목 | 설명 |
|---|---|
| 이름 | DaemonSet 이름 |
| 네임스페이스 | DaemonSet이 속한 네임스페이스 |
| 상태 | N/N 준비됨 |
| 경과시간 | 생성 후 경과 시간 |
| 생성일 | DaemonSet 생성 일시 |
노드 스케줄링:
노드 스케줄링 섹션은 DaemonSet의 핵심 상태를 표시합니다:
| 항목 | 설명 |
|---|---|
| 노드 준비 상태 | N / N 노드 준비됨 (프로그레스 바 포함) |
| 원하는 스케줄 수 | 스케줄되어야 하는 노드 수 |
| 현재 스케줄 수 | 현재 스케줄된 노드 수 |
| 준비 수 | Ready 상태의 파드 수 |
| 사용 가능 수 | Available 상태의 파드 수 |
| 업데이트된 스케줄 수 | 최신 버전으로 업데이트된 파드 수 |
파드 상태:
파드 상태 섹션에서는 DaemonSet의 파드 현황을 시각적으로 표시합니다:
- 실행 중 (Running): 정상 동작 중인 파드
- 대기 중 (Pending): 스케줄링 대기 중인 파드
- 실패 (Failed): 실패한 파드
업데이트 전략:
| 항목 | 설명 |
|---|---|
| 업데이트 전략 | RollingUpdate 또는 OnDelete |
| 최대 사용 불가 | 업데이트 시 동시에 중단 가능한 파드 수 |
컨테이너 이미지:
DaemonSet에 정의된 컨테이너 이미지 목록을 표시합니다:
- 이미지 이름 및 태그
- 복사 버튼
멀티클러스터 정책 탭
DaemonSet에 적용된 멀티 클러스터 정책 정보를 표시합니다.

전파 정책 (PropagationPolicy):
| 컬럼 | 설명 |
|---|---|
| 이름 | PropagationPolicy 이름 |
| 네임스페이스 | 정책이 속한 네임스페이스 |
| 범위 | 네임스페이스 범위 정책 / 클러스터 범위 정책 |
| 대상 클러스터 | 타겟 클러스터 목록 |
오버라이드 정책 (OverridePolicy):
클러스터별 커스텀 설정이 있는 경우 표시됩니다. 없는 경우 "연관된 오버라이드 정책이 없습니다" 메시지가 표시됩니다.
레이블 탭
DaemonSet에 적용된 Kubernetes 레이블 목록을 표시합니다.
어노테이션 탭
DaemonSet에 적용된 어노테이션 목록을 표시합니다.
파드 탭
해당 DaemonSet에서 실행 중인 파드 목록을 표시합니다.

| 컬럼 | 설명 |
|---|---|
| 이름 | 파드 이름 |
| 클러스터 | 파드가 실행 중인 클러스터 |
| 상태 | 파드 상태 (실행 중/대기 중/실패 등) |
| 노드 | 파드가 스케줄된 노드 |
| 재시작 횟수 | 파드 재시작 횟수 |
| 경과시간 | 파드 생성 후 경과 시간 |
| 작업 | 보기/삭제 버튼 |
파드 목록은 클러스터별로 각 노드에 하나씩 파드가 분배된 것을 확인할 수 있습니다.
이벤트 탭
DaemonSet 관련 Kubernetes 이벤트를 표시합니다.
DaemonSet 생성
새로운 DaemonSet을 MCM 컨트롤 플레인에 생성합니다.
입력 항목
| 항목 | 필수 | 설명 |
|---|---|---|
| 이름 | ✅ | DaemonSet 이름 |
| 네임스페이스 | ✅ | 배포할 네임스페이스 |
| 컨테이너 이미지 | ✅ | 컨테이너 이미지 URL |
| 노드 셀렉터 | - | 특정 노드에만 배포할 경우 설정 |
| 포트 | - | 컨테이너 포트 설정 |
| 환경 변수 | - | 컨테이너 환경 변수 |
| 리소스 제한 | - | CPU/메모리 제한 및 요청 |
| 볼륨 마운트 | - | 호스트 경로 또는 볼륨 마운트 |
YAML 편집
"YAML 편집" 탭에서 DaemonSet 정의를 직접 작성할 수 있습니다.
DaemonSet 작업
DaemonSet 편집
- DaemonSet 선택
- 상세 패널에서 "편집" 버튼 클릭
- YAML 에디터에서 DaemonSet 정의 수정
- "저장" 버튼 클릭
DaemonSet 삭제
⚠️ 주의: DaemonSet을 삭제하면 관련된 모든 파드도 함께 삭제됩니다. 멤버 클러스터에 배포된 리소스도 삭제 정책에 따라 처리됩니다.
- 삭제할 DaemonSet 선택
- 상세 패널에서 "삭제" 버튼 클릭
- 확인 다이얼로그에서 DaemonSet 이름 입력
- "삭제" 버튼 클릭
사용 예시
시나리오 1: 멀티클러스터 로그 수집 에이전트 배포
- "생성" 버튼 클릭
- DaemonSet 정보 입력:
- 이름:
fluentd-agent - 네임스페이스:
logging - 컨테이너 이미지:
fluent/fluentd:v1.14 - 볼륨 마운트:
/var/log→/var/log(읽기 전용)
- 이름:
- "생성" 버튼 클릭
- PropagationPolicy를 생성하여 타겟 클러스터 지정
- 각 클러스터의 모든 노드에 에이전트 배포 확인
시나리오 2: DaemonSet 상태 확인
- DaemonSet 목록에서 확인할 DaemonSet 클릭
- 개요 탭에서 노드 스케줄링 상태 확인 (N/N 형식)
- 파드 탭에서 클러스터별 파드 분배 확인
- 각 노드에 파드가 정상 실행 중인지 확인
- 문제가 있는 경우 이벤트 탭에서 원인 파악
시나리오 3: 특정 노드에만 DaemonSet 배포
- "생성" 버튼 클릭 또는 기존 DaemonSet 편집
- 노드 셀렉터 설정:
nodeSelector:node-type: worker
- 저장 후 worker 노드에만 파드가 스케줄되는지 확인
- master 노드에는 파드가 생성되지 않음 확인
시나리오 4: DaemonSet 롤링 업데이트
- DaemonSet 선택 후 "편집" 클릭
- 컨테이너 이미지 버전 변경 (예:
v1.14→v1.15) - "저장" 클릭
- 개요 탭에서 업데이트 진행 상황 확인:
- 업데이트된 스케줄 수가 점진적으로 증가
- 파드 탭에서 파드가 순차적으로 교체되는 것 확인
시나리오 5: 멀티클러스터 파드 분배 확인
- DaemonSet 선택
- "파드" 탭 클릭
- 클러스터별 파드 분배 확인:
- 클러스터 A: 6개 노드에 6개 파드
- 클러스터 B: 7개 노드에 7개 파드
- 각 노드에 하나의 파드만 실행 중인지 확인
- 새 노드 추가 시 자동으로 파드가 스케줄되는지 확인
관련 개념
DaemonSet vs Deployment
| 특성 | DaemonSet | Deployment |
|---|---|---|
| 파드 배치 | 각 노드에 하나씩 | 임의의 노드에 분산 |
| 스케일링 | 노드 수에 따라 자동 | 레플리카 수 수동 조정 |
| 사용 사례 | 노드 레벨 에이전트 | 일반 애플리케이션 |
| 수평 확장 | 노드 추가로 확장 | 레플리카 증가로 확장 |
업데이트 전략
RollingUpdate (기본값):
- 파드를 순차적으로 업데이트
maxUnavailable: 동시에 중단 가능한 파드 수 (기본값: 1)- 다운타임 최소화
OnDelete:
- 파드를 수동으로 삭제해야 업데이트됨
- 완전한 제어가 필요한 경우 사용
노드 셀렉터와 톨러레이션
노드 셀렉터:
- 특정 레이블이 있는 노드에만 파드 배포
- 예:
node-type: gpu,disk-type: ssd
톨러레이션:
- 특정 테인트가 있는 노드에도 파드 배포 허용
- 예: master 노드에도 DaemonSet 파드 배포
PropagationPolicy와 DaemonSet
DaemonSet을 멀티클러스터에 배포할 때:
- PropagationPolicy로 타겟 클러스터 지정
- 각 클러스터의 모든 적격 노드에 파드 생성
- 클러스터별 다른 설정이 필요하면 OverridePolicy 사용
다음 단계
- StatefulSets (상태저장 세트) - 멀티클러스터 StatefulSet 관리
- Jobs (작업) - 멀티클러스터 Job 관리
- Propagation Policies (배포 정책) - PropagationPolicy 설정