Kubernetes

쿠버네티스 데몬셋

디벨원 2021. 10. 17. 21:42

쿠버네티스 데몬셋(DaemonSets)

 

데몬셋은 쿠버네티스의 모든 노드에 동일한 포드를 하나씩 생성하는 오브젝트이다. 데몬셋은 로깅, 모니터링, 네트워킹 등을 위한 에이전트를 각 노드에 생성해야 할 때 유용하게 사용할 수 있다. 예를 들어 쿠버네티스 네트워킹을 위한 kube-proxy 컴포넌트나 weavenet 등의 네트워크 플러그인은 kube-system 네임스페이스에서 데몬셋으로 실행되고 있다.

 

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: daemonset-example
spec:
  selector:
    matchLabels:
      name: my-daemonset-example
  template:
    metadata:
      labels:
        name: my-daemonset-example
    spec:
      containers:
      - name: daemonset-example
        image: busybox:1.10
        args: ["tail", "f", "/dev/null"]

 

이런 식으로 YAML파일로 데몬셋을 생성하면 각 노드에 하나씩 포드가 생성된다. 강제적으로 포드를 삭제하거나 새로운 노드를 추가하면 노드 개수에 맞게 각 노드에 하나씩 자동으로 생성이 된다. 데몬셋은 디플로이먼트와 같이 롤링 업데이트도 지원을 한다. edit 명령어로 image를 업데이트해도 되고 rollout 명령어로 롤백할 수도 있다.