본문으로 건너뛰기

4.2. DaemonSets (데몬 세트)

개요

DaemonSets 페이지는 MCM 컨트롤 플레인에서 관리하는 모든 DaemonSet을 통합적으로 관리하는 페이지입니다. DaemonSet은 클러스터의 모든 노드(또는 특정 노드)에서 파드가 실행되도록 보장하는 워크로드입니다.

주요 목적:

  • 멀티클러스터 DaemonSet 통합 관리
  • 클러스터별 노드 스케줄링 상태 모니터링
  • DaemonSet 생성, 수정, 삭제
  • 노드 셀렉터 기반 파드 배포 관리
  • PropagationPolicy 및 OverridePolicy 확인

DaemonSet 사용 사례:

  • 로그 수집 에이전트 (예: fluentd, filebeat)
  • 모니터링 에이전트 (예: node-exporter, datadog-agent)
  • 스토리지 데몬 (예: ceph, glusterd)
  • 네트워크 플러그인 (예: calico, flannel)

화면 구성

DaemonSets 페이지는 테이블 형태로 DaemonSet 목록을 표시합니다.

DaemonSets 메인 화면

페이지 상단 요소

요소설명
네임스페이스 필터특정 네임스페이스의 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 이름
네임스페이스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 편집

  1. DaemonSet 선택
  2. 상세 패널에서 "편집" 버튼 클릭
  3. YAML 에디터에서 DaemonSet 정의 수정
  4. "저장" 버튼 클릭

DaemonSet 삭제

⚠️ 주의: DaemonSet을 삭제하면 관련된 모든 파드도 함께 삭제됩니다. 멤버 클러스터에 배포된 리소스도 삭제 정책에 따라 처리됩니다.

  1. 삭제할 DaemonSet 선택
  2. 상세 패널에서 "삭제" 버튼 클릭
  3. 확인 다이얼로그에서 DaemonSet 이름 입력
  4. "삭제" 버튼 클릭

사용 예시

시나리오 1: 멀티클러스터 로그 수집 에이전트 배포

  1. "생성" 버튼 클릭
  2. DaemonSet 정보 입력:
    • 이름: fluentd-agent
    • 네임스페이스: logging
    • 컨테이너 이미지: fluent/fluentd:v1.14
    • 볼륨 마운트: /var/log/var/log (읽기 전용)
  3. "생성" 버튼 클릭
  4. PropagationPolicy를 생성하여 타겟 클러스터 지정
  5. 각 클러스터의 모든 노드에 에이전트 배포 확인

시나리오 2: DaemonSet 상태 확인

  1. DaemonSet 목록에서 확인할 DaemonSet 클릭
  2. 개요 탭에서 노드 스케줄링 상태 확인 (N/N 형식)
  3. 파드 탭에서 클러스터별 파드 분배 확인
  4. 각 노드에 파드가 정상 실행 중인지 확인
  5. 문제가 있는 경우 이벤트 탭에서 원인 파악

시나리오 3: 특정 노드에만 DaemonSet 배포

  1. "생성" 버튼 클릭 또는 기존 DaemonSet 편집
  2. 노드 셀렉터 설정:
    nodeSelector:
    node-type: worker
  3. 저장 후 worker 노드에만 파드가 스케줄되는지 확인
  4. master 노드에는 파드가 생성되지 않음 확인

시나리오 4: DaemonSet 롤링 업데이트

  1. DaemonSet 선택 후 "편집" 클릭
  2. 컨테이너 이미지 버전 변경 (예: v1.14v1.15)
  3. "저장" 클릭
  4. 개요 탭에서 업데이트 진행 상황 확인:
    • 업데이트된 스케줄 수가 점진적으로 증가
  5. 파드 탭에서 파드가 순차적으로 교체되는 것 확인

시나리오 5: 멀티클러스터 파드 분배 확인

  1. DaemonSet 선택
  2. "파드" 탭 클릭
  3. 클러스터별 파드 분배 확인:
    • 클러스터 A: 6개 노드에 6개 파드
    • 클러스터 B: 7개 노드에 7개 파드
  4. 각 노드에 하나의 파드만 실행 중인지 확인
  5. 새 노드 추가 시 자동으로 파드가 스케줄되는지 확인

관련 개념

DaemonSet vs Deployment

특성DaemonSetDeployment
파드 배치각 노드에 하나씩임의의 노드에 분산
스케일링노드 수에 따라 자동레플리카 수 수동 조정
사용 사례노드 레벨 에이전트일반 애플리케이션
수평 확장노드 추가로 확장레플리카 증가로 확장

업데이트 전략

RollingUpdate (기본값):

  • 파드를 순차적으로 업데이트
  • maxUnavailable: 동시에 중단 가능한 파드 수 (기본값: 1)
  • 다운타임 최소화

OnDelete:

  • 파드를 수동으로 삭제해야 업데이트됨
  • 완전한 제어가 필요한 경우 사용

노드 셀렉터와 톨러레이션

노드 셀렉터:

  • 특정 레이블이 있는 노드에만 파드 배포
  • 예: node-type: gpu, disk-type: ssd

톨러레이션:

  • 특정 테인트가 있는 노드에도 파드 배포 허용
  • 예: master 노드에도 DaemonSet 파드 배포

PropagationPolicy와 DaemonSet

DaemonSet을 멀티클러스터에 배포할 때:

  • PropagationPolicy로 타겟 클러스터 지정
  • 각 클러스터의 모든 적격 노드에 파드 생성
  • 클러스터별 다른 설정이 필요하면 OverridePolicy 사용

다음 단계