Node-Deployment Mode

Explore this Page

Overview

DataCore Puls8 Local PV Hostpath supports a Node-Deployment Mode in which the provisioner runs as a DaemonSet, one instance per node - instead of a single cluster-wide Deployment. In this mode, each DaemonSet instance handles volume operations exclusively for its own node, performing filesystem operations such as directory creation, quota setup, and deletion directly in-process, without spawning short-lived helper pods for each PersistentVolumeClaim (PVC) operation. This eliminates scheduling overhead, resulting in faster PVC binding.

This document explains how to enable Node-Deployment Mode for Local PV Hostpath in DataCore Puls8.

This mode is recommended for production environments with high PVC churn or latency-sensitive workloads. It is opt-in, requires no migration of existing volumes, and is fully compatible with existing Local PV Hostpath StorageClasses and PersistentVolumes.

DaemonSet Provisioning Model

When a PVC is bound to a node, the DaemonSet instance co-located on that node carries out the required filesystem operation directly in-process. No helper pod is scheduled, started, or terminated. Each DaemonSet instance processes only the PVCs assigned to its own node; requests intended for other nodes are gracefully skipped. Leader election is automatically disabled, as each node instance is the sole authority for its own local storage.

Enabling Node-Deployment Mode

Node-Deployment Mode is opt-in. Your existing Deployment-based setup continues to work without any changes.

Via Helm

Copy
Enable Node-Deployment Mode via Helm
helm upgrade puls8 -n puls8 oci://docker.io/datacoresoftware/puls8 \
  --version <chart-version> \
  --set openebs.localpv-provisioner.nodeDeployment.enabled=true

If you are enabling Node-Deployment Mode as part of a Helm upgrade, use --reset-then-reuse-values to reset the release to the new chart defaults, re-apply your existing user-defined values, and then apply any additional --set overrides.

Verify the Installation

Once enabled, verify that the DaemonSet pods are running - one per node:

Copy
Verify DaemonSet Pods
kubectl get po -n puls8
Copy
Sample Output
NAME                             READY   STATUS    RESTARTS   AGE
localpv-provisioner-node-74p49   1/1     Running   0          70s
localpv-provisioner-node-hxz94   1/1     Running   0          70s
localpv-provisioner-node-nw7dq   1/1     Running   0          70s

Benefits of Node-Deployment Mode

  • Reduced PVC Binding Latency: Volume operations are performed in-process on the target node. There is no wait for a helper pod to be scheduled, started, executed, and terminated, which directly reduces end-to-end PVC binding time for latency-sensitive workloads.
  • Lower API Server Load: Helper pod churn is eliminated, meaningfully reducing the number of pod create and delete events that the API server and etcd must process per storage operation. This is particularly significant at scale, where high PVC throughput would otherwise generate continuous pod lifecycle traffic.
  • Simpler Architecture: With no transient pods involved in the provisioning path, there are fewer components to monitor, debug, or account for in resource quotas. Operational complexity and failure surface area are both reduced.
  • XFS and ext4 Quota and Race Condition Fixes: DataCore Puls8 also resolves issues with projId assignment for XFS and ext4 quota-based volumes, and addresses race conditions that could occur under concurrent provisioning workloads.

Learn More