kubernetes(cka)
[Kubernetes, cka] 07. DaemonSets
밍맛
2024. 4. 1. 00:50
Kubernetes에서 DaemonSet은 클러스터의 각 노드에 Pod를 자동으로 배포하고 관리하는데 사용되는 중요한 컨트롤러입니다. DaemonSet은 특히 클러스터 전체에 걸쳐 단일 인스턴스의 Pod를 유지해야 할 때 유용합니다. 이는 ReplicaSet과 비슷하지만, ReplicaSet은 지정된 수의 Pod 복사본을 유지하는 반면, DaemonSet은 클러스터의 모든 노드에 Pod를 하나씩 배치합니다.
DaemonSet의 사용 사례
모니터링 에이전트: 클러스터의 모든 노드에 모니터링 도구를 배포할 때 유용합니다. 각 노드에 Pod를 배치하여 시스템 메트릭을 수집할 수 있습니다.
로그 수집기: 모든 노드에서 로그를 수집하고 중앙 집중화된 저장소로 전송하기 위해 로그 수집 에이전트를 배포하는 데 사용됩니다.
네트워킹: 각 노드에 네트워킹 에이전트나 CNI 플러그인을 배포하는 데 필요합니다.
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: monitoring-daemon
spec:
selector:
matchLabels:
name: monitoring-agent
template:
metadata:
labels:
name: monitoring-agent
spec:
containers:
- name: monitoring-container
image: monitoring-image
DaemonSet 동작 방식
DaemonSet 컨트롤러는 새 노드가 클러스터에 추가될 때마다 해당 노드에 Pod의 복사본을 자동으로 생성하고, 노드가 제거될 때 해당 노드의 Pod를 제거합니다. Kubernetes 1.12 버전부터 DaemonSet은 기본 스케줄러를 사용하며 노드 어피니티 규칙을 활용해 노드에 Pod를 스케줄링합니다.