A DaemonSet is a Kubernetes workload controller that ensures a copy of a specified Pod runs on all (or a subset of) nodes in the cluster. It is a fundamental building block for deploying cluster-wide infrastructure services like log collectors (e.g., Fluentd), monitoring agents (e.g., Prometheus Node Exporter), and network plugins. The controller automatically manages pod placement, creating pods on new nodes as they join the cluster and garbage-collecting pods from removed nodes.
Glossary
DaemonSet

What is a DaemonSet?
A DaemonSet is a core Kubernetes controller for deploying system-level services across a cluster.
Within agent telemetry pipelines, a DaemonSet is the standard method for deploying observability collectors—such as the OpenTelemetry Collector, Vector, or Grafana Agent—as a local sidecar on every node. This pattern ensures low-latency, host-level data collection for logs, metrics, and traces before the telemetry is enriched and forwarded to a backend. Its self-healing properties and tight integration with the node lifecycle make it essential for reliable, cluster-wide observability.
Key Characteristics of a DaemonSet
A DaemonSet is a Kubernetes controller that ensures a copy of a specific Pod runs on all (or a subset of) nodes in a cluster. It is a foundational pattern for deploying cluster-wide infrastructure services.
Node-Level Deployment Guarantee
The core function of a DaemonSet is to guarantee that a Pod template is scheduled and runs on every eligible node in the cluster. When a new node joins the cluster, the DaemonSet controller automatically deploys the Pod to it. Conversely, when a node is removed, its Pod is garbage collected. This ensures a uniform, node-level presence for services like:
- Log collectors (e.g., Fluentd, Filebeat)
- Monitoring agents (e.g., Prometheus Node Exporter, Datadog Agent)
- Network plugins (e.g., Calico, Cilium)
- Storage daemons (e.g., Gluster, Ceph)
Selective Deployment with Node Selectors
DaemonSets can target a subset of nodes using nodeSelectors and affinity/anti-affinity rules. This is critical for heterogeneous clusters where a service should only run on nodes with specific hardware (e.g., GPUs), roles (e.g., node-role.kubernetes.io/ingress), or labels (e.g., disk=ssd). For example, a GPU monitoring agent would use a node selector like accelerator: nvidia-tesla-v100 to deploy only to GPU-equipped nodes.
Direct Pod Management, No Replica Count
Unlike a Deployment, which manages a Pod lifecycle via an intermediate ReplicaSet to maintain a desired count of identical Pods, a DaemonSet directly manages Pods based on node inventory. There is no replicas field. The desired state is defined by the node selector and the cluster's node count. Pods are named with the template hash and the node name (e.g., fluentd-abc12-node-01), providing a clear 1:1 mapping to their host.
Use Case: Agentic Telemetry Pipelines
In Agentic Observability, DaemonSets are the standard method for deploying the data collection layer of a telemetry pipeline. A DaemonSet ensures every node runs an instance of a telemetry agent (e.g., OpenTelemetry Collector, Grafana Agent, Vector) that is responsible for:
- Receiving traces/spans from instrumented applications on the local node.
- Scraping node-level metrics (CPU, memory, disk).
- Collecting container logs from the node's container runtime.
- Enriching data with node-level attributes (e.g., AZ, instance type).
- Forwarding data reliably to a central OTel Collector or backend. This provides a scalable, resilient foundation for capturing signals from autonomous agents and their infrastructure.
Update Strategies: RollingUpdate & OnDelete
DaemonSets support two update strategies for rolling out new Pod templates:
- RollingUpdate (Default): Updates Pods on nodes in a controlled, rolling fashion. You can configure
maxUnavailable(e.g.,1) to limit how many nodes can be down during the update. - OnDelete: The DaemonSet only creates new Pods with the updated template when you manually delete the old Pods on each node. This provides maximum control for stateful or sensitive node-level services.
Updates are triggered by changes to the Pod template spec (
spec.template).
Interaction with Taints and Tolerations
DaemonSets often require tolerations to deploy Pods onto tainted nodes. Master/control plane nodes commonly have a taint like node-role.kubernetes.io/master:NoSchedule. To run a cluster-wide monitoring agent on these nodes, the DaemonSet's Pod spec must include a matching toleration. This is a key differentiator from standard Deployments and is essential for full cluster coverage. The DaemonSet controller itself does not add tolerations automatically; they must be explicitly defined in the Pod template.
Frequently Asked Questions
A DaemonSet is a core Kubernetes workload controller essential for deploying cluster-wide services. These questions address its operational mechanics, use cases, and role in observability pipelines.
A DaemonSet is a Kubernetes controller that ensures a copy of a specific Pod runs on all (or a subset of) nodes in the cluster. It works by continuously monitoring the cluster's node pool. When a new node is added that matches the DaemonSet's node selector or tolerations, the controller automatically schedules a pod replica onto it. Conversely, if a node is removed, the pod is garbage collected. This mechanism is ideal for deploying cluster-level infrastructure services that must be present on every node, such as log collectors, monitoring agents, or network proxies.
Key operational mechanics include:
- Node Affinity/Selector: Controls which nodes the pods are scheduled on.
- Tolerations: Allows pods to be scheduled onto nodes with specific taints.
- Rolling Updates: Supports controlled, node-by-node updates to the pod template.
- Pod Deletion: Deleting a DaemonSet object removes all the pods it created.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
DaemonSets are one of several core Kubernetes controllers for deploying and managing pods. Understanding related workload types is essential for designing robust, scalable agent telemetry pipelines.
Deployment
A Deployment is a Kubernetes controller that manages the declarative updates and lifecycle of a set of identical pods, known as ReplicaSets. It is the primary workload for stateless applications.
- Key Purpose: Ensures a specified number of pod replicas are running and facilitates rolling updates and rollbacks.
- Contrast with DaemonSet: Deployments schedule pods based on resource availability, not node affinity. They are used for scalable application services, not node-level agents.
- Example: Running 10 replicas of a web API service across a cluster's worker nodes.
StatefulSet
A StatefulSet is a Kubernetes workload controller for managing stateful applications, providing guarantees about the ordering and uniqueness of pods.
- Key Purpose: Manages pods with persistent storage, stable network identities, and ordered deployment/scaling.
- Contrast with DaemonSet: StatefulSets are for clustered databases (e.g., Cassandra, Kafka) where pod identity and storage matter. DaemonSets ignore pod identity, focusing on node coverage.
- Stable Identity: Each pod gets a persistent hostname based on its ordinal index (e.g.,
kafka-0,kafka-1).
Job / CronJob
A Job creates one or more pods to execute a finite task to completion. A CronJob manages time-scheduled Jobs.
- Key Purpose: For batch processing, one-off computations, or scheduled maintenance tasks.
- Contrast with DaemonSet: Jobs are ephemeral and terminate; DaemonSets are long-running. A CronJob for log rotation might trigger a Job, while the log collector itself runs via a DaemonSet.
- Example: A CronJob that runs a data backup Job every night at 2 AM.
Node Selector / Taints & Tolerations
These are mechanisms to control pod scheduling.
- Node Selector: A simple field in a pod spec that schedules pods only onto nodes with matching labels.
- Taints & Tolerations: A taint allows a node to repel pods. A pod must have a matching toleration to be scheduled on a tainted node.
- DaemonSet Usage: DaemonSets use tolerations to deploy pods on master nodes (which are typically tainted) and node selectors to target subsets of nodes (e.g.,
node-type: gpu).
Operator Pattern
An Operator is a method of packaging, deploying, and managing a Kubernetes application using custom resources and controllers.
- Key Purpose: Encodes human operational knowledge (like backups, upgrades) into software for complex stateful applications.
- Relation to DaemonSet: An Operator for a monitoring stack (e.g., Prometheus Operator) would likely manage the DaemonSet that deploys the node exporters. The Operator handles the DaemonSet's lifecycle, configuration, and updates.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us