Obiectul DaemonSet garantează că toate (sau o selecție de) noduri active din cluster rulează exact o copie a unui Pod specificat. Pe măsură ce noduri noi sunt adăugate în cluster (de exemplu prin autoscalare cloud la ore de vârf), DaemonSet-ul pornește automat un Pod pe noul nod. Când nodurile sunt eliminate din cluster, Pod-urile asociate sunt distruse automat de garbage collector.
DaemonSet pentru Prometheus Node Exporter (monitorizare hardware)
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-exporter
namespace: monitorizare
spec:
selector:
matchLabels:
app: node-exporter
template:
metadata:
labels:
app: node-exporter
spec:
hostNetwork: true # Monitorizează direct interfața de rețea a gazdei
hostPID: true # Accesează arborele de procese al mașinii fizice
containers:
- name: node-exporter
image: prom/node-exporter:v1.7.0
securityContext:
readOnlyRootFilesystem: true
volumeMounts:
- name: proc
mountPath: /host/proc
readOnly: true
- name: sys
mountPath: /host/sys
readOnly: true
volumes:
- name: proc
hostPath:
path: /proc
- name: sys
hostPath:
path: /sys
Cazuri clasice de utilizare pentru DaemonSet:
- Colectarea de jurnale (Logging): Rularea unui agent precum Fluentbit, Promtail sau Vector pe fiecare nod pentru a trimite logurile către Elasticsearch sau Grafana Loki.
- Monitorizarea infrastructurii: Agenți precum Prometheus Node Exporter sau Datadog Agent.
- Plugin-uri de rețea și stocare (CNI/CSI): Drivere fundamentale precum Cilium, Calico sau Ceph-RBD.