CKA

(TIL) Kubernetes DaemonSet

심플코더 2025. 3. 26. 21:14

DaemonSet

DaemonSet이란 각 노드마다 단 하나의 Pod을 배포하고 관리하는 Kubernetes 리소스이다.

노드가 추가되면 자동으로 Pod도 추가되며, 노드가 삭제되면 Pod도 삭제된다.

 

DaemonSet의 용도

DaemonSet은 일반적으로 모니터링 에이전트, 로그 수집기, 네트워크 컴포넌트, 보안 에이전트등에 사용된다.

ex) Prometheus Node Exporter, Datadog, Fluentd, Logstash

 

DaemonSet의 구조

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: monitoring-daemon
spec:
  selector:
    matchLabels:
      app: monitoring-agent
  template:
    metadata:
      labels:
        app: monitoring-agent
    spec:
      containers:
        - name: agent
          image: my-monitoring-agent:latest

 

selector와 template.labels가 일치해야함에 주의한다.

 

DaemonSet의 동작 방식

kuberenets v1.12 이전에는 nodeName필드 지정으로 Pod를 배치하였으나 v1.12이후부터는 NodeAffinity와 기본 스케줄러를 이용하여 노드를 배치한다.