[k8s] DaemonSet

2025. 2. 20. 10:45·Kubernetes

DaemonSet이란?

모든 노드에 파드를 하나씩 실행하도록 하는 오브젝트

ReplicaSet과 유사하지만 다른 점이 있다면, ReplicaSet은 여러 노드에 걸쳐서 정해진 개수의 파드를 배치한다면, DaemonSet은 노드 하나 당 파드를 하나 배포.

즉 노드를 추가하게 되면 그 노드에 파드가 하나 추가되고, 노드가 제거되면 파드의 개수 또한 줄어든다.

DaemonSet의 사용 사례

  • 모니터링 에이전트 배포:
  • 클러스터의 모든 노드에서 시스템 모니터링을 위해 에이전트를 실행해야 할 때, DaemonSet을 사용하면 노드 추가/삭제에 상관없이 자동으로 배포됩니다.
  • 로그 수집기 배포:
  • 각 노드에서 로그를 수집하기 위해 로그 수집기를 배포할 때 유용합니다.
  • kube-proxy 배포:
  • Kubernetes 아키텍처에서 kube-proxy는 모든 워커 노드에 반드시 존재해야 하는 컴포넌트인데, DaemonSet을 통해 쉽게 배포할 수 있습니다.
  • 네트워킹 솔루션:
  • 예를 들어, Vivenet과 같은 네트워킹 솔루션의 에이전트를 각 노드에 배포해야 할 때 사용됩니다.

생성

apiVersion: apps/v1
kind: DaemonSet

metadata: 
	name: monitoring-daemon
	
spec:
	selector:
		matchLabels:
			app: monitoring-agent
			
	template:
		metadata:
			labels:
				app: monitoring-agent
		spec:
			containers:
				- name: monitoring-agent
					image: monitoring-agent 

DaemonSet의 스케줄링 방식 변화

  • 이전 방식:
  • 과거에는 각 Pod에 nodeName 프로퍼티를 직접 설정하여 특정 노드에 Pod가 배치되도록 하였다. 이 방법은 스케줄러를 우회하는 방식이었다.
  • Kubernetes 1.12 이후:즉, DaemonSet은 내부적으로 스케줄러를 활용하여 각 노드에 Pod를 자동으로 배포한다.
  • Kubernetes 1.12 버전부터 DaemonSet은 기본 스케줄러와 노드 어피니티(node affinity) 규칙을 사용하여 Pod를 노드에 스케줄링한다.

요약

  • DaemonSet은 클러스터의 모든 노드에 파드를 하나씩 배포하는 오브젝트
  • 주요 사례: 모니터링, 로그 수집가, kube-proxy, 네트워킹 에이전트
  • 정의 파일은 ReplicaSet과 유사
  • 스케줄링 초기에는 파드마다 nodeName을 배치하였지만, 최신 버전에서는 기본 스케줄러와, NodeAffinity를 사용.

'Kubernetes' 카테고리의 다른 글

[k8s] kubernetes에서 ecr 인증하기  (0) 2025.03.06
[k8s] Resource Requirements&limits  (0) 2025.02.20
[k8s] Node Affinity  (0) 2025.02.05
[k8s] Node Selector  (0) 2025.02.05
[k8s] Taint and Toleration 개념  (0) 2025.02.05
'Kubernetes' 카테고리의 다른 글
  • [k8s] kubernetes에서 ecr 인증하기
  • [k8s] Resource Requirements&limits
  • [k8s] Node Affinity
  • [k8s] Node Selector
코딩 못하는 감자
코딩 못하는 감자
  • 코딩 못하는 감자
    코딩 못하는 감자의 기록
    코딩 못하는 감자
  • 전체
    오늘
    어제
    • 분류 전체보기 (91)
      • Kubernetes (10)
      • Github Action (1)
      • Docker, Container (3)
      • Springboot (26)
      • Baekjoon (4)
      • 명품 운영체제 (9)
      • 데이터베이스 (2)
      • JSP (3)
      • 안드로이드프로그래밍 (1)
      • 미니프로젝트 (1)
      • 용어정리 (0)
      • 소프트웨어공학 (3)
      • 운영체제 (2)
      • Flutter (0)
      • Git (1)
      • HTTP (0)
      • RAG (1)
      • Database (2)
      • FastAPI (1)
      • Elasticsearch (7)
      • Redis (0)
      • JPA (5)
      • Linux (1)
      • MCP (1)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    응답 로그
    elasticsearch ngram
    엘라스틱서치 인덱스
    elasticsearch analyzer
    SpringBoot
    fuzziness
    mcp #model context protocol #claude desktop #mcp claude연동 #claude 파일 시스템 연동
    Dockerfile
    엘라스틱서치 인덱스 복사
    elasticsearch 커스텀분석기
  • hELLO· Designed By정상우.v4.10.3
코딩 못하는 감자
[k8s] DaemonSet
상단으로

티스토리툴바