OpenEBS Dynamic LocalPV Provisioner
May 19, 2026 · View on GitHub
Overview
OpenEBS Dynamic LocalPV Provisioner is an open‐source Kubernetes component that automates the dynamic provisioning of local persistent volumes. It converts local storage available on Kubernetes nodes, such as hostPath directories into persistent volumes accessible via PVCs. The provisioner automatically assigns node affinity metadata, ensuring that pods run on the node hosting the storage. The tool simplifies local storage management by automating volume creation, binding, and cleanup processes for hostpaths. It overcomes challenges of static provisioning by dynamically allocating storage on demand. Overall, the provisioner offers a robust, scalable solution for managing local persistent hostpath volumes in Kubernetes.
Why OpenEBS Dynamic LocalPV Provisioner?
- Dynamic Provisioning: Automatically creates persistent hostpath volumes on demand from local node storage, reducing manual configuration.
- Seamless Kubernetes Integration: Uses node affinity to ensure pods are scheduled on the node where the volume is located, maintaining data consistency.
- Customizable Storage Behavior: Offers flexible configuration through StorageClasses, supporting hostpath features like quota enforcement etc.
- Optimized for High Performance: Ideal for high-performance, low-latency, stateful applications like replicated databases which need local storage.
Architecture
graph TD
%% Define Styles with Black Text
style kubelet fill:#ffcc00,stroke:#d4a017,stroke-width:2px,color:#000
style Provisioner fill:#66ccff,stroke:#3388cc,stroke-width:2px,color:#000
style HelperPod fill:#99ff99,stroke:#44aa44,stroke-width:2px,color:#000
style App fill:#ff9999,stroke:#cc6666,stroke-width:2px,color:#000
style Hostpath fill:#ffdd99,stroke:#d4a017,stroke-width:2px,color:#000
style PVC fill:#ffdd99,stroke:#d4a017,stroke-width:2px,color:#000
style PV fill:#d9b3ff,stroke:#9955cc,stroke-width:2px,color:#000
subgraph "Kubernetes Cluster"
subgraph "Kubelet"
kubelet["Kubelet"]
end
subgraph "OpenEBS LocalPV"
Provisioner["LocalPV Provisioner"]
HelperPod["Helper Pod (Creates/Cleanup Directory)"]
end
subgraph "Worker Node"
App["Application Pod"]
PVC["Persistent Volume Claim"]
PV["Persistent Volume"]
Hostpath["[User-defined path on host]"]
end
end
%% Storage Flow
App -->|Requests Storage| PVC
PVC -->|Binds to| PV
PV -->|Mounted on| Hostpath
kubelet -->|Mounts Path| Hostpath
%% Provisioning Flow
Provisioner -->|Launches| HelperPod
Provisioner -->|Watches PVC Requests| Provisioner
Provisioner -->|Creates PV| PV
HelperPod -->|Creates Directory| Hostpath
PV -->|Bound to| PVC
Please check here for complete design and architecture.
Kubernetes Compatibility Matrix
| Kubernetes <= v1.18 | Kubernetes (v1.19 - v1.22) | Kubernetes >=v1.23 | |
|---|---|---|---|
v4.3.x | ✕ | ✓ | ✓ |
v4.4.x | ✕ | ✓ | ✓ |
v4.5.x | ✕ | ✕ | ✓ |
HEAD | ✕ | ✕ | ✓ |
Documents
- Prerequisites
- Quickstart
- Developer Setup
- Testing
- Contibuting Guidelines
- Governance
- Changelog
- Release Process
Features
- Access Modes
- ReadWriteOnce
ReadOnlyManyReadWriteMany
- Volume modes
-
Filesystemmode -
Blockmode
-
- Volume Resize(Via Quotas)
Inspiration/Credit
OpenEBS Local PV has been inspired by the prior work done by the following the Kubernetes projects:
- https://github.com/kubernetes-sigs/sig-storage-lib-external-provisioner/tree/HEAD/examples/hostpath-provisioner
- https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner
- https://github.com/rancher/local-path-provisioner
Dev Activity dashboard
License Compliance
OpenEBS is a CNCF Sandbox Project
