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=fluentdCost & 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.
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 FreeRelated Terms
Node
Core ConceptsA physical or virtual machine in a Kubernetes cluster that runs Pods under the direction of the control plane.
Read definitionPod
Core ConceptsThe smallest deployable unit in Kubernetes — one or more containers that share a network namespace and storage volumes.
Read definitionTaints and Tolerations
OperationsNode taints repel Pods from scheduling on a node; tolerations in a Pod spec allow it to be scheduled on tainted nodes.
Read definitionResource Requests and Limits
ConfigurationPer-container declarations of guaranteed CPU/memory (requests) and hard maximums (limits) that drive scheduling and enforcement.
Read definitionStop 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.