Skip to content

DaemonSet 생성 ​

Cluster의 모든(또는 선택) 노드에 Pod 사본을 하나씩 실행하는 DaemonSet을 생성합니다. 로그 수집·모니터링 에이전트 등 노드 단위 워크로드에 적합합니다.

사전 조건

  • Container 앱 접근 권한, 대상 Cluster가 Active 상태
  • 배포 대상 Namespace 및 컨테이너 Image 준비

왼쪽 끝의 클러스터 아이콘을 눌러 대상 Cluster 안으로 들어간 뒤 Workloads → DaemonSets 메뉴를 엽니다.

DaemonSet 목록 조회 및 생성 페이지 진입 ​

생성된 DaemonSet이 목록으로 표시됩니다.

DaemonSet 목록 조회 및 생성 페이지 진입
번호기능항목설명
1-1목록 컬럼Status / Name워크로드 상태와 이름입니다.
Namespace소속 Namespace입니다.
Image컨테이너 Image입니다.
Ready / Current / Desired준비된 Pod 수, 현재 Pod 수, 있어야 할 Pod 수입니다.
Created at생성 시각입니다.
Action행 메뉴로 shell 접속·재배포·수정·삭제 등을 수행합니다.

'Create DaemonSet' 버튼을 클릭하면 폼(Create as Form) 또는 YAML 입력(Create as YAML) 중 방식을 선택할 수 있습니다.

생성 진입

Create DaemonSet: DaemonSet ​

리소스 고유 설정을 지정하는 첫 탭입니다. 상단의 Pod 탭과 컨테이너 탭(container-0)으로 전환하고, 우측 Summary의 Create로 생성합니다.

Create DaemonSet: DaemonSet
번호기능항목설명
3-1NamespaceNamespace· DaemonSet을 배포할 Namespace를 선택합니다. (필수)
3-2NameName· 고유한 DaemonSet 이름을 입력합니다. (필수) DaemonSet은 노드마다 Pod를 하나씩 배치합니다.
3-3Selector labelsSelector labels· Add Selector로 추가한 행에 Pod 선택용 Match Labels의 Key·Value를 입력합니다. (필수)

Create DaemonSet: Pod ​

Pod 템플릿 수준 설정(종료·네트워크·스케줄링·리소스·보안·스토리지)을 섹션별로 지정합니다.

Create DaemonSet: Pod
번호기능항목설명
4-1Scaling and upgrade policyScaling and upgrade policy· Termination Grace Period에 Pod 종료 유예 시간을 초 단위로 입력합니다.
4-2NetworkingNetworking· Network mode·DNS policy·Hostname 등 Pod 네트워크 설정입니다.

Pod 템플릿 수준 설정(종료·네트워크·스케줄링·리소스·보안·스토리지)을 섹션별로 지정합니다.

Create DaemonSet: Pod (2)
번호기능항목설명
5-1Node schedulingNode scheduling· Pod를 배치할 노드 선택(nodeSelector·affinity) 규칙입니다.
5-2Pod schedulingPod scheduling· Add Pod Selector로 추가한 그룹에서 Pod affinity 유형·우선순위·대상 Pod를 지정합니다.

Pod 템플릿 수준 설정(종료·네트워크·스케줄링·리소스·보안·스토리지)을 섹션별로 지정합니다.

Create DaemonSet: Pod (3)
번호기능항목설명
6-1ResourcesResources· Pod 수준 리소스 관련 설정입니다.
6-2Security contextSecurity context· Pod Filesystem Group(fsGroup)을 지정합니다.
6-3StorageStorage· Pod 수준 볼륨/스토리지 설정입니다.

Create DaemonSet: Container ​

컨테이너의 이미지·네트워크·커맨드·환경변수·리소스 등 설정을 섹션별로 지정합니다.

Create DaemonSet: Container
번호기능항목설명
7-1ImageImage· Container Image·Pull Policy·Pull Secrets를 설정합니다.
7-2NetworkingNetworking· Add Port or Service로 추가한 행에 컨테이너가 노출할 Service 유형·포트를 입력합니다.

컨테이너의 이미지·네트워크·커맨드·환경변수·리소스 등 설정을 섹션별로 지정합니다.

Create DaemonSet: Container (2)
번호기능항목설명
8-1CommandCommand· 컨테이너의 Command·Args를 재정의합니다.
8-2Environment variablesEnvironment variables· Add Variable로 추가한 행에 환경변수의 Key·Value를 입력합니다.
8-3Service AccountService Account· 컨테이너가 사용할 Service Account를 지정합니다.

컨테이너의 이미지·네트워크·커맨드·환경변수·리소스 등 설정을 섹션별로 지정합니다.

Create DaemonSet: Container (3)
번호기능항목설명
9-1Lifecycle hooksLifecycle hooks· postStart·preStop 라이프사이클 훅을 설정합니다.
9-2ResourcesResources· CPU·메모리의 Reservation과 Limit을 설정합니다.

컨테이너의 이미지·네트워크·커맨드·환경변수·리소스 등 설정을 섹션별로 지정합니다.

Create DaemonSet: Container (4)
번호기능항목설명
10-1Security contextSecurity context· 컨테이너 보안 컨텍스트(권한·capabilities 등)입니다.
10-2Health checkHealth check· Liveness·Readiness·Startup probe를 설정합니다.
10-3StorageStorage· 볼륨 마운트 등 컨테이너 스토리지를 설정합니다.

DaemonSet에는 Replicas가 없습니다

조건에 맞는 모든 노드에 자동으로 1개의 Pod를 배포합니다. Pod 수는 노드 수에 따라 결정됩니다.

특정 노드에만 배포하려면

Pod 탭의 Node Affinity / nodeSelector에서 노드 레이블을 지정합니다.

사용 사례노드 레이블 예시
Linux 노드에만 배포kubernetes.io/os=linux
GPU 노드에만 배포accelerator=nvidia-tesla-k80
특정 역할 노드에만 배포node-role.kubernetes.io/worker=true

현재 노드 레이블은 kubectl get nodes --show-labels로 확인합니다.

리소스 제한 권장

DaemonSet은 모든 노드에 배포되므로 반드시 CPU/Memory Limit을 설정하세요.

Desired와 Ready 수가 일치하면 모든 노드에 배포 완료입니다. 노드가 추가되면 Pod가 자동 생성됩니다.

AI 인프라의 새로운 기준