NFS storage class
Contents
In this section we show how you can setup a storage class that supports ReadWriteMany
using NFS. NOTE: Running an NFS server on GKE k8s cluster with autopilot mode is not possible due to security restrictions. The NFS server provisioner requires two capabilities 'DAC_READ_SEARCH' and 'SYS_RESOURCE', which are disabled by Autopilot.
Using an existing NFS server
If you have a NFS server, we will just create a client that uses that. Read more about this provisioner on github.
Add helm repository
$ helm repo add nfs https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
"nfs" has been added to your repositories
$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "nfs" chart repository
Update Complete. ⎈Happy Helming!⎈
Install client provisioner
Change nfs.server and nfs.path to reflect your setup. |
$ helm upgrade --install \
--namespace kube-system \
--set nfs.server=?.?.?.? \
--set nfs.path=/some/exported/path \
--set storageClass.name=nfs \
--set storageClass.archiveOnDelete=false \
--set storageClass.allowVolumeExpansion=true \
--version 3.0.0 \
nfs-client \
nfs/nfs-subdir-external-provisioner
Release "nfs-client" does not exist. Installing it now.
NAME: nfs-client
LAST DEPLOYED: Thu Feb 18 16:37:40 2021
NAMESPACE: kube-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
Create NFS server in K8s cluster
Add helm repository
As of this writing, the helm community is slowly phasing out the stable channel. The new version of this provisioner does not have its own helm repo yet. |
$ helm repo add stable https://charts.helm.sh/stable
"stable" has been added to your repositories
$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈Happy Helming!⎈
Install server provisioner
You might want to update persistence.size for more capacity. |
$ helm upgrade --install \
--namespace kube-system \
--set persistence.enabled=true \
--set persistence.size=1Gi \
--set storageClass.name=nfs \
--set storageClass.allowVolumeExpansion=true \
--version 1.1.3 \
nfs-server \
stable/nfs-server-provisioner
Release "nfs-server" does not exist. Installing it now.
WARNING: This chart is deprecated
NAME: nfs-server
LAST DEPLOYED: Thu Feb 18 16:41:20 2021
NAMESPACE: kube-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The NFS Provisioner service has now been installed.