A DaemonSet is a Kubernetes workload controller that ensures a copy of a specified Pod runs on all (or a subset of) nodes in a cluster. It is a foundational primitive for deploying system-level services like log collectors, monitoring agents, and storage daemons that must be present on every node. For edge AI architectures, DaemonSets are essential for deploying local inference servers, telemetry collectors, or security agents across a distributed fleet of edge devices, guaranteeing a uniform software baseline.
Glossary
DaemonSet

What is a DaemonSet?
A DaemonSet is a core Kubernetes controller for deploying system-level services across a cluster, a critical pattern for edge AI orchestration.
Unlike a Deployment, which scales pods based on aggregate resource demand, a DaemonSet's scaling is intrinsically tied to the cluster's node topology. It automatically places a pod on each new node as it joins the cluster. This makes it ideal for the edge model deployment paradigm, where you need a predictable, one-per-node presence for services that manage local hardware, perform on-device inference, or handle over-the-air (OTA) updates. It ensures operational continuity by maintaining these critical services even if individual pods fail, as the controller will recreate them.
Key Characteristics of a DaemonSet
A DaemonSet is a Kubernetes workload controller that ensures a copy of a specified Pod runs on all (or some) nodes in a cluster. It is a foundational tool for deploying system-level services across a distributed fleet, making it critical for edge AI architectures.
Node-Level Saturation
The core function of a DaemonSet is to saturate nodes with a specific Pod. When a DaemonSet is created, the Kubernetes control plane automatically schedules a Pod on each node that matches the DaemonSet's node selector. If a new node joins the cluster, the DaemonSet controller immediately deploys a Pod to it. This is ideal for deploying per-node infrastructure services like:
- Log collectors (e.g., Fluentd, Logstash)
- Monitoring agents (e.g., Prometheus Node Exporter)
- Network plugins (e.g., Calico, Cilium)
- Local storage providers
Declarative & Self-Healing
Like all Kubernetes controllers, a DaemonSet operates on a declarative desired state. You define the Pod template and the nodes it should run on, and the DaemonSet controller continuously reconciles the actual state of the cluster with this specification. If a DaemonSet Pod crashes or is manually deleted, the controller immediately creates a replacement on the same node to maintain the desired state. This provides built-in resilience for critical node-level services, ensuring they are always present without manual intervention.
Selective Node Targeting
DaemonSets are not limited to all nodes. You can target a subset of nodes using node selectors or affinity/anti-affinity rules. This is essential in heterogeneous edge clusters where only specific nodes have the required hardware (e.g., a GPU for AI inference) or are designated for a particular role.
Example Selector:
yamlnodeSelector: accelerator: nvidia-tesla-t4
This ensures the DaemonSet Pod (e.g., a GPU monitoring agent) only runs on nodes with that label.
Taints, Tolerations & Updates
DaemonSets are the primary method for deploying Pods onto nodes with Kubernetes taints, such as master nodes. By adding corresponding tolerations to the DaemonSet's Pod spec, you can run system Pods on these restricted nodes.
For updates, DaemonSets support rolling updates. You can update the Pod template (e.g., to deploy a new version of a log collector), and the controller will update Pods on each node in a controlled manner, respecting configurable update strategies (RollingUpdate or OnDelete).
Edge AI Deployment Pattern
In edge AI architectures, DaemonSets are the standard pattern for deploying node-local AI inference servers or model monitoring sidecars. Instead of a centralized cloud endpoint, each edge node runs its own local inference service via a DaemonSet, providing:
- Ultra-low latency: Inference happens on the device generating the data.
- Offline operation: No dependency on cloud connectivity.
- Data locality: Sensitive data never leaves the node. A typical pattern involves a DaemonSet Pod that contains a lightweight model server (e.g., TensorFlow Serving, Triton Inference Server) and a mounted volume with the latest quantized model.
Contrast with Deployments & StatefulSets
It's critical to distinguish DaemonSets from other Kubernetes workloads:
- Deployment: Manages a replicated set of Pods for user-facing applications (e.g., a web API). The scheduler places Pods on any available node based on resource needs.
- StatefulSet: Manages stateful applications (e.g., databases) where Pods have unique, stable identities and persistent storage.
- DaemonSet: Ensures one Pod per node for system-level services. The placement is tied to the node itself, not to scaling replicas. Use a DaemonSet when the workload's purpose is intrinsically linked to the node, not when you need to scale a service independently of the number of nodes.
How a DaemonSet Works
A DaemonSet is a core Kubernetes controller designed for deploying system-level services across a cluster, making it a foundational tool for edge AI orchestration.
A DaemonSet is a Kubernetes workload controller that ensures a copy of a specified Pod runs on all (or a subset of) nodes in a cluster. It automatically creates and manages pods on each node, providing a fundamental mechanism for deploying cluster-wide infrastructure services. For edge AI, this is essential for deploying node-level agents like log collectors, monitoring daemons, or local inference servers that must be present on every device to ensure uniform operational capabilities.
When a new node joins the cluster, the DaemonSet controller immediately schedules its pod template onto that node. It is ideal for deploying per-node services that provide local resource monitoring, storage, or networking. In edge model deployment, a DaemonSet guarantees that critical AI telemetry agents or security enforcers are running on every edge device, maintaining a consistent desired state across a heterogeneous fleet without manual intervention, which is crucial for resilient, decentralized operations.
Common Use Cases for DaemonSets in Edge AI
A DaemonSet is a Kubernetes workload controller that ensures a copy of a specified pod runs on all (or some) nodes in a cluster. In Edge AI architectures, this pattern is essential for deploying system-level services that must be present on every device to enable core operational capabilities.
Local Storage Provisioning
DaemonSets manage CSI (Container Storage Interface) drivers and local storage provisioners on nodes with attached storage (e.g., NVMe, SD cards). This is critical for Edge AI workloads that require:
- High-performance I/O: Low-latency access to training data or video streams stored locally.
- Data locality: Processing sensor data where it lands, avoiding network transfer costs.
- Ephemeral caching: Providing fast temporary storage for model artifacts or intermediate computation results.
Device Plugin & Hardware Access
DaemonSets deploy Kubernetes Device Plugins that advertise specialized edge hardware to the Kubelet, allowing pods to request exclusive access. This is essential for:
- NPU/GPU acceleration: Making neural processing units available to AI inference pods.
- Sensor integration: Providing access to unique device peripherals (e.g., LiDAR, specialized cameras).
- Resource accounting: Enabling the scheduler to place model pods only on nodes with the required hardware accelerators present.
DaemonSet vs. Other Kubernetes Controllers
A comparison of Kubernetes workload controllers, focusing on their suitability for deploying and managing system-level services and AI models across a distributed fleet of edge nodes.
| Controller Feature | DaemonSet | Deployment | StatefulSet |
|---|---|---|---|
Primary Use Case | System daemons (e.g., log collectors, monitoring agents) | Stateless application replicas (e.g., web servers, APIs) | Stateful applications with stable identity (e.g., databases, message queues) |
Pod Placement Guarantee | One pod per node (or subset via nodeSelector) | No node affinity; scheduler places pods based on resource availability | Stable, ordered pod identities on specific nodes |
Pod Naming & Identity | Node-specific names (e.g., fluentd-abc12) | Randomized, non-deterministic names (e.g., app-7cbbf5d8f9) | Ordinal, stable names (e.g., mysql-0, mysql-1) |
Storage & Networking | Typically uses hostPath or node-local volumes | Ephemeral storage or shared PersistentVolumeClaims | Stable, persistent storage tied to pod identity |
Update Strategy | RollingUpdate (default) or OnDelete | RollingUpdate (default) or Recreate | Partitioned RollingUpdate for controlled stateful upgrades |
Scaling Mechanism | Auto-scales with cluster nodes; manual node addition/removal | Horizontal Pod Autoscaler (HPA) based on CPU/memory/custom metrics | Manual scaling only, with strict order (e.g., scale down from highest ordinal) |
Edge AI Model Deployment Fit | ✅ Ideal for node-level inference servers, telemetry agents, local model caches | ✅ Suitable for scalable, stateless prediction endpoints behind a load balancer | ❌ Not typical; reserved for stateful edge services requiring stable storage/network |
Typical Edge Workload Examples | Fluentd, Prometheus Node Exporter, on-device model inference pod | REST API for model predictions, load-balanced microservice | Local edge database for inference results, edge message broker for telemetry |
Frequently Asked Questions
A DaemonSet is a core Kubernetes controller for deploying system-level services across a cluster. In edge AI architectures, it is fundamental for provisioning foundational software like monitoring agents, log collectors, and security daemons to every node, ensuring a consistent operational baseline.
A DaemonSet is a Kubernetes workload controller that ensures a copy of a specified Pod runs on all (or a subset of) nodes in a cluster. It works by the Kubernetes control plane monitoring the cluster's node set. When a new node joins the cluster, the DaemonSet controller automatically schedules a Pod defined in its template onto that node. If a node is removed, its Pod is garbage-collected. This mechanism is ideal for deploying cluster-wide infrastructure services like log collectors (e.g., Fluentd), monitoring agents (e.g., Prometheus Node Exporter), or network plugins that must be present on every node to function.
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 used to manage pods. Understanding the related workload types is essential for designing robust edge AI deployments.
Deployment
A Deployment is a Kubernetes controller that manages a set of identical, stateless pods, providing declarative updates, scaling, and rollback capabilities. It is the primary controller for running application services.
- Stateless by design: Ideal for scalable microservices and web servers.
- Rolling updates: Updates pods incrementally to ensure zero-downtime deployments.
- Scaling: Easily scales the number of pod replicas up or down.
- Key difference from DaemonSet: Deployments run a desired number of pods across the cluster, while DaemonSets run one pod per node.
StatefulSet
A StatefulSet is a Kubernetes workload controller used to manage stateful applications, providing stable, unique network identifiers, ordered deployment and scaling, and persistent storage.
- Stable identity: Each pod gets a persistent hostname and stable storage, even after rescheduling.
- Ordered operations: Pods are created, scaled, and terminated in a strict order (ordinal index).
- Use cases: Essential for databases (e.g., MySQL, Cassandra), message queues, and any edge AI service requiring persistent state or ordered startup.
- Contrast with DaemonSet: DaemonSets are for node-level agents; StatefulSets are for clustered, stateful applications.
Job
A Job is a Kubernetes controller that creates one or more pods to perform a specific task to completion, rather than running continuously.
- Run to completion: Ensures a pod successfully terminates after finishing its work.
- Parallel execution: Can create multiple pod instances to process work items in parallel.
- Use cases: Perfect for batch processing, data ETL pipelines, one-time model training jobs, or running a diagnostic script on demand across the cluster.
- Related controller: A CronJob schedules Jobs to run at specified times, useful for periodic model retraining or data aggregation tasks.
Pod
A Pod is the smallest and simplest deployable object in Kubernetes, representing a single instance of a running process. It is a group of one or more containers with shared storage and network.
- Atomic unit: The fundamental building block managed by all higher-level controllers (Deployments, DaemonSets, etc.).
- Shared context: Containers in a pod share an IP address, port space, and can communicate via localhost. They can also share volumes.
- Ephemeral: Pods are created and destroyed to match the state specified by a controller. A DaemonSet's core function is to ensure a specific pod specification is present on all relevant nodes.
Operator Pattern
The Operator Pattern is a method of packaging, deploying, and managing a Kubernetes application using custom controllers and custom resources. It encodes human operational knowledge into software.
- Automates complex tasks: Handles installation, configuration, backup, recovery, and upgrades for stateful applications.
- Extends Kubernetes API: Uses Custom Resource Definitions (CRDs) to define application-specific resources (e.g.,
InferenceService,EdgeModel). - Relevance to Edge AI: Operators are increasingly used to manage the full lifecycle of AI/ML workloads on Kubernetes, automating tasks beyond the scope of standard DaemonSets or Deployments, such as model version rollout and hardware-specific optimizations.
Node Selector / Taints & Tolerations
These are mechanisms for controlling which nodes a pod can be scheduled onto, crucial for targeting specific edge hardware.
- Node Selector: A simple field in a pod spec that schedules pods only onto nodes with matching labels (e.g.,
accelerator: nvidia). - Taints and Tolerations: A more advanced feature that repels pods from nodes unless the pod explicitly tolerates the taint.
- Taint: Applied to a node (e.g.,
dedicated=edge:NoSchedule). - Toleration: Applied to a pod, allowing it to be scheduled on a tainted node.
- Taint: Applied to a node (e.g.,
- DaemonSet Usage: DaemonSets often use tolerations to run critical pods (like log collectors) on all nodes, including master nodes which are typically tainted.

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