📡 One Pod Per Node — Automatically
Need monitoring agent on every node? Log collector? DaemonSet runs one pod per node. New nodes get pod automatically.
📝 DaemonSet Example
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-monitor
namespace: kube-system
spec:
selector:
matchLabels:
name: node-monitor
template:
metadata:
labels:
name: node-monitor
spec:
containers:
- name: monitor
image: prom/node-exporter
ports:
- containerPort: 9100
resources:
requests:
memory: 64Mi
cpu: 50m
limits:
memory: 128Mi
cpu: 100m
🎯 Common Use Cases
- Node monitoring (Prometheus Node Exporter) - Log collection (Fluentd, Filebeat) - Network proxies (kube-proxy) - Security agents (container scanning) - CNI plugins (Calico, Cilium) - Storage drivers (CSI) # Update DaemonSet kubectl set image daemonset/node-monitor monitor=prom/node-exporter:v1.3.0 # Rollback kubectl rollout undo daemonset/node-monitor
💡 Commands
- kubectl get daemonset -n kube-system
- kubectl describe daemonset node-monitor -n kube-system
- kubectl delete daemonset node-monitor -n kube-system
- Use nodeSelector to run on specific nodes
“DaemonSet ensures monitoring agent on every node. New node added, pod appears automatically. Essential for observability.”
