Dynamic NFS Volume Provisioner


OpenEBS Dynamic NFS PV provisioner can be used to dynamically provision
NFS Volumes using different kinds of block storage available on the Kubernetes nodes.
This project is under active development.
Prerequisites
Please ensure that an NFS client is functioning on all nodes that will run a pod that mounts an openebs-rwx
volume.
Here's how to prepare an NFS client on some common Operating Systems:
-
Ubuntu, Debian: Install the nfs-common
package if not already installed.
-
MacOS: Should work out of the box.
-
Windows:
Ensure that the default NFS client is operating. To do this start PowerShell as Administrator, and run Install-WindowsFeature NFS-Client
if it's a Windows server or Enable-WindowsOptionalFeature -FeatureName ServicesForNFS-ClientOnly, ClientForNFS-Infrastructure -Online -NoRestart
if it's a Windows host with a Desktop environment.
-
Fedora, CentOS, RedHat: Install the nfs-utils
package if not already installed.
-
FreeBSD:
- Edit the /etc/rc.conf file by setting or appending
nfs_client_enable="YES"
- Run
service nfsclient start
Install
Install NFS Provisioner through kubectl
kubectl apply -f https://openebs.github.io/charts/nfs-operator.yaml
Create a StorageClass with required backing storage class. Example:
#Sample storage classes for OpenEBS Local PV
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: openebs-rwx
annotations:
openebs.io/cas-type: nfsrwx
cas.openebs.io/config: |
- name: NFSServerType
value: "kernel"
- name: BackendStorageClass
value: "openebs-hostpath"
# LeaseTime defines the renewal period(in seconds) for client state
#- name: LeaseTime
# value: 30
# GraceTime defines the recovery period(in seconds) to reclaim locks
#- name: GraceTime
# value: 30
provisioner: openebs.io/nfsrwx
reclaimPolicy: Delete
You can now use openebs-rwx
storage class to create RWX volumes.
Install NFS Provisioner through Helm
helm repo add openebs-nfs https://openebs.github.io/dynamic-nfs-provisioner
helm install [RELEASE_NAME] openebs-nfs/nfs-provisioner --namespace openebs --create-namespace
Refer https://github.com/openebs/dynamic-nfs-provisioner/tree/develop/deploy/helm/charts for the list of configuration parameter of the dynamic-nfs-provisioner chart.
Contributing
OpenEBS welcomes your feedback and contributions in any form possible.
Community, discussion, and support
Learn how to engage with the OpenEBS community on the community page.
You can reach the maintainers of this project at:
Code of conduct
Participation in the OpenEBS community is governed by the CNCF Code of Conduct.
Inspiration/Credit
License
