Back to Glossary
Workloads

DaemonSet

A controller that ensures one Pod runs on every node (or every node matching a selector), used for node-level infrastructure agents.

What is DaemonSet?

A DaemonSet guarantees that exactly one copy of a Pod runs on every node in the cluster (or on every node matching a nodeSelector or affinity rule). As nodes are added to the cluster, new DaemonSet Pods are automatically scheduled on them; as nodes are removed, those Pods are garbage collected. DaemonSets are the canonical way to deploy node-level infrastructure: log collectors (Fluentd, Fluent Bit), metrics agents (Datadog node-agent, Prometheus Node Exporter), network plugins (Calico, Cilium), and security agents (Falco, CrowdStrike).

Unlike Deployments, DaemonSets bypass the normal scheduler for node selection — the DaemonSet controller places Pods directly. They can tolerate node taints that would normally prevent Pod scheduling, enabling them to run on control-plane nodes or dedicated GPU nodes. The update strategy is RollingUpdate by default, replacing one Pod at a time, or OnDelete for manual control.

Because DaemonSet Pods run on every node, they multiply linearly with cluster size. A DaemonSet with requests of 100m CPU and 200Mi memory consumes those resources times the node count — on a 50-node cluster, that's 5 CPU cores and 10Gi of memory reserved for that single DaemonSet.

Example

# Check which nodes a DaemonSet pod is running on
kubectl get pods -n kube-system -l app=fluentd -o wide

# Check DaemonSet rollout status
kubectl rollout status daemonset/fluentd -n kube-system

# View DaemonSet resource usage at scale
kubectl top pods -n kube-system -l app=fluentd

Cost & Waste Implications

DaemonSets with large resource requests multiply their cost by node count. Reducing a DaemonSet's CPU request from 500m to 100m on a 100-node cluster frees 40 CPU cores — equivalent to several fewer nodes needed. Redundant or forgotten DaemonSets from uninstalled monitoring stacks continue consuming node resources until explicitly deleted.

KorPro— Kubernetes Cost Optimization

How KorPro Helps

KorPro surfaces DaemonSets with high aggregate resource consumption across the cluster and flags DaemonSets that appear orphaned (e.g., the associated Helm release has been deleted but the DaemonSet remains).

Scan Your Cluster Free

Stop Wasting Money on Orphaned Kubernetes Resources

KorPro connects to your clusters across GCP, AWS, and Azure — no agents, no installation — and surfaces every orphaned resource with its monthly cost estimate.