@@ -23,6 +23,8 @@ OpenEBS Dynamic LocalPV Provisioner is an open‐source Kubernetes component tha
2323
2424## Architecture
2525
26+ ### Traditional Architecture (Helper Pods)
27+
2628``` mermaid
2729
2830graph TD
@@ -66,6 +68,51 @@ graph TD
6668
6769```
6870
71+ ### New Architecture (PVC Manager DaemonSet)
72+
73+ ``` mermaid
74+
75+ graph TD
76+ %% Define Styles with Black Text
77+ style kubelet fill:#ffcc00,stroke:#d4a017,stroke-width:2px,color:#000
78+ style Provisioner fill:#66ccff,stroke:#3388cc,stroke-width:2px,color:#000
79+ style PVCManager fill:#99ff99,stroke:#44aa44,stroke-width:2px,color:#000
80+ style App fill:#ff9999,stroke:#cc6666,stroke-width:2px,color:#000
81+ style Hostpath fill:#ffdd99,stroke:#d4a017,stroke-width:2px,color:#000
82+ style PVC fill:#ffdd99,stroke:#d4a017,stroke-width:2px,color:#000
83+ style PV fill:#d9b3ff,stroke:#9955cc,stroke-width:2px,color:#000
84+
85+ subgraph "Kubernetes Cluster"
86+ subgraph "Kubelet"
87+ kubelet["Kubelet"]
88+ end
89+ subgraph "OpenEBS LocalPV"
90+ Provisioner["LocalPV Provisioner"]
91+ end
92+ subgraph "Worker Node (Every Node)"
93+ PVCManager["PVC Manager (DaemonSet)"]
94+ App["Application Pod"]
95+ PVC["Persistent Volume Claim"]
96+ PV["Persistent Volume"]
97+ Hostpath["[User-defined path on host]"]
98+ end
99+ end
100+
101+ %% Storage Flow
102+ App -->|Requests Storage| PVC
103+ PVC -->|Binds to| PV
104+ PV -->|Mounted on| Hostpath
105+ kubelet -->|Mounts Path| Hostpath
106+
107+ %% Provisioning Flow (New)
108+ Provisioner -->|HTTP Request| PVCManager
109+ Provisioner -->|Watches PVC Requests| Provisioner
110+ Provisioner -->|Creates PV| PV
111+ PVCManager -->|Creates/Deletes Directory| Hostpath
112+ PV -->|Bound to| PVC
113+
114+ ```
115+
69116Please check [ here] ( ./design/hostpath_localpv_provisioner.md ) for complete design and architecture.
70117
71118## Kubernetes Compatibility Matrix
@@ -90,6 +137,9 @@ Please check [here](./design/hostpath_localpv_provisioner.md) for complete desig
90137
91138## Features
92139
140+ - [x] ** Two Architecture Modes** :
141+ - [x] ** Helper Pod Mode** (Traditional): Creates ephemeral pods for volume operations
142+ - [x] ** PVC Manager Mode** (New): Uses DaemonSet with HTTP API for faster operations
93143- [x] Access Modes
94144 - [x] ReadWriteOnce
95145 - ~~ ReadOnlyMany~~
@@ -99,6 +149,25 @@ Please check [here](./design/hostpath_localpv_provisioner.md) for complete desig
99149 - [ ] ` Block ` mode
100150- [x] [ Volume Resize(Via Quotas)] ( ./docs/tutorials/hostpath/xfs_quota/ )
101151
152+ ### PVC Manager Architecture Benefits
153+
154+ The new PVC Manager architecture provides:
155+
156+ - ** Better Performance** : Eliminates pod creation overhead for volume operations
157+ - ** Reduced API Server Load** : Fewer ephemeral pod objects created/destroyed
158+ - ** Improved Reliability** : Persistent service always available for volume operations
159+ - ** Enhanced Observability** : HTTP API with health checks and metrics
160+ - ** Backward Compatibility** : Can be disabled to use traditional helper pod mode
161+
162+ To enable PVC Manager mode, set the environment variable:
163+ ``` yaml
164+ env :
165+ - name : OPENEBS_IO_ENABLE_PVC_MANAGER
166+ value : " true"
167+ ` ` `
168+
169+ [Learn more about PVC Manager architecture](./docs/pvc-manager-architecture.md)
170+
102171## Inspiration/Credit
103172
104173OpenEBS Local PV has been inspired by the prior work done by the following the Kubernetes projects:
0 commit comments