RWMVolume Operator
eases the pain of creating ReadWriteMany Volumes in cloud environments.
The operator creates a volume with a chosen storage class and deploys NFS server and ReadWriteMany volume over him.
Block storages, available as storage classes in popular clouds (for example,
GCP or
AWS), allow you to create volumes working in ReadWriteOnce and ReadOnlyMany modes.
This operator makes them "work" in RWX mode if you need a writable volume accessible by many pods.
RWMVolume Operator provides following features:
- Create/Delete Volumes and all required environment by creating
RWMVolume
custom resource. - Extending the Volume size by changing the
.spec.capacity
field in theRWMVolume
resource.
With one connected client when using NFS, performance drops by 2-3 times, you can see results here.
Also there are not enough statistics of the usage of this solution in applications that require low latency and many disk operations. The most reasonable use case seems to be storing certain mutable information that should be available on all pods in the deployment (for example, some kind of logs, reports, cache and generated content for web applications).
- How it works - a general overview and definitions
- Creating Volumes - make a dynamically provisioned volume and a test deployment
The operator includes one custom resource called RWMVolume
. Install the CRD by running the command below:
kubectl apply -f https://raw.githubusercontent.com/ganochenkodg/rwmvolume-operator/master/deploy/crds/crd-rwmvolume.yaml
Install the operator by running the command below:
kubectl apply -f https://raw.githubusercontent.com/ganochenkodg/rwmvolume-operator/master/deploy/operator.yaml
The example is available in deploy/example
, it creates a volume and a deployment with 3 replicas to work with.
This project is made for educational and research purposes only. The author does not recommend using it in production and in environments where stability, predictability and performance are important. There are enough proven, scalable, and fault-tolerant storage solutions, such as Longhorn or Ceph. If you decided to use this operator, don't forget to make regular backups and save important information before deleting volumes. You are solely responsible for determining the appropriateness of using RWMVolume Operator and assume any risks associated with its use.