Nubes et Stella

Kubernetis #07 (DaemonSet) 본문

DevOps/Kubernetis

Kubernetis #07 (DaemonSet)

SeongYeong Han 2023. 10. 28. 12:44

01. Kubernetis DaemonSet

각 "노드" 별로 반드시 실행되어야 하는 워크로드들을 일괄 생성해주는 API-Resource 이다.

 

 

데몬셋 특징

- 클러스터 상의 모든 노드에 동일한 파드를 하나씩 생성한다.

- 로그 수집 / 메트릭 수집 / 네트워크 구성등의 목적으로 많이 사용된다.

   > 로그 수집 : filebeat / fluenbit

   > 메트릭 수집 : node-exporter / metricbeat / telegraf

   > 네트워크 구성 : kube-proxy / calico 

- Deployment와 동일하게 Label Selctor 기반으로 동작한다.

- nodeSelector / Affinity / Toleration 등을 통해 실행되어야 할 노드 목록을 필터링 할 수 있다.

 

DaemonSet 구현

- daemonset.yaml

  • line 2 : "kind" 인자에 "DaemonSet"을 설정한다.
  • line 8~ : "selector", "template.spce".. 기존 Deployment 와 동일하다.

  • line 78~88 : "hostpath"를 설정한다. 모든 컨테이너들의 로그에 접근하기 위함
  • line 65~77 : 컨테이너들의 configmap, log..를 Pod의 볼륨에 마운트한다.
  • line 78~94 : Pod를 생성할 때 볼륨을 설정해준다. (Volume에 대한 자세한 내용은 나중에 따로..)

 

- configmap.yaml

  • line 7 : filebeat.yaml 이라는 파일을 configmap 의 키로 설정
  • line 8 : input을 통해서 파일 내용을 설정하며, paths를 통해서 로그 파일을 생성한다.
  • line 24~25 : output을 통해서 다른 시스템(kafka, elk..)으로 로그를 포워딩 할 수도 있다.

..

  •  설정을 끝마친 후 apply하게 되면, "daemonset"과 하위 "Pod"가 생성된다.

 

  • kubectl logs [Pod] 명령어를 사용하여 파드의 로그를 콘솔로 출력한다.

'DevOps > Kubernetis' 카테고리의 다른 글

Kubernetis #06 (Namespace/(Cron)Job)  (0) 2023.10.24
Kubernetis #05 (ConfigMap/Secret)  (0) 2023.10.19
Kubernetis #04 (Deployment/Service)  (0) 2023.10.15
Kubernetis #03 (Pod/ReplicaSet)  (0) 2023.10.14
Kubernetis #02 (Install)  (0) 2023.10.14