Inferensys

Glossary

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, commonly used for deploying system-level services on edge nodes.
Strategy consultant facilitating AI use case discovery workshop, sticky notes on glass wall, casual corporate meeting.
KUBERNETES WORKLOAD

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.

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.

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.

KUBERNETES WORKLOAD

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.

01

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
02

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.

03

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:

yaml
nodeSelector:
  accelerator: nvidia-tesla-t4

This ensures the DaemonSet Pod (e.g., a GPU monitoring agent) only runs on nodes with that label.

04

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).

05

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.
06

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.
KUBERNETES WORKLOAD

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.

KUBERNETES WORKLOAD PATTERNS

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.

05

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.
06

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.
EDGE DEPLOYMENT COMPARISON

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 FeatureDaemonSetDeploymentStatefulSet

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

KUBERNETES DAEMONSET

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.

Prasad Kumkar

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.