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