Skip to main content

NFS CSI Storage

Network File System (NFS) CSI driver provides shared storage that can be mounted by multiple pods simultaneously.

note

This NFS storage class is typically built-in with your cluster creation. If you don't see the NFS storage class available or need assistance with configuration, please feel free to contact our support team.

Setup

1. Install NFS CSI Driver

helm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts
helm install csi-driver-nfs csi-driver-nfs/csi-driver-nfs --namespace kube-system

2. Create Storage Class

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nfs
provisioner: nfs.csi.k8s.io
parameters:
server: k8s-c-jodiekuhl.nfs.vnetwork.dev
share: /
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
mountOptions:
- nfsvers=4.1

3. Create PVC

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
storageClassName: nfs

Usage Example

apiVersion: apps/v1
kind: Deployment
metadata:
name: app
spec:
replicas: 1
selector:
matchLabels:
app: example
template:
metadata:
labels:
app: example
spec:
containers:
- name: app
image: nginx
volumeMounts:
- name: storage
mountPath: /data
volumes:
- name: storage
persistentVolumeClaim:
claimName: nfs-pvc

Troubleshooting

# Check NFS CSI driver
kubectl get pods -n kube-system | grep nfs

# Check PVC status
kubectl get pvc nfs-pvc
kubectl describe pvc nfs-pvc