Introduction
CSI (Container Storage Interface) adalah interface yang memungkinkan Kubernetes untuk berkomunikasi dengan berbagai sistem penyimpanan (storage) eksternal (seperti AWS EBS, Google Persistent Disk, NFS, dan lain-lain).
Pada pembahasan kali ini saya akan menggunakan NFS Driver yang dimana kita menyiapkan 1 shared storage NFS dan kemudian kubernetes cluster akan menghubungkan ke NFS Share tersebut.
Reqruitment
- Kubernetes cluster
- Helm
- NAS dan sudah dishare menggunakan NFS
Pre-Configuration
Sebelum kita menggunakan NFS, kita harus install driver nfs-common pada semua Nodes kubernetes (master dan worker)
sudo apt install nfs-common -yConfiguration
Menambahkan helm chart csi driver
helm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/chartsCheck versi pada helm chart csi-drive-nfs
helm search repo csi-driver-nfs
Jika ingin melihat default values dari chart tersebut, bisa menggunakan command dibawah ini
helm show values csi-driver-nfs/csi-driver-nfs > default-values.yamlDisini kita akan membuat custom values untuk nfs-csi-driver
storageClass:
create: true
name: nfs-csi
annotations:
storageclass.kubernetes.io/is-default-class: "false"
parameters:
server: <ADDRESS OF NFS-SERVER>
share: <PATH OF SHARED NFS-SERVER>
reclaimPolicy: Delete
volumeBindingMode: Immediate
mountOptions:
- nfsvers=4.1Kemudian kita install dengan helm menggunakan custom values.yaml dan menggunakan version helm terbaru
helm install csi-driver-nfs csi-driver-nfs/csi-driver-nfs --namespace kube-system --version 4.12.1 -f values.yamlCheck bahwa sudah terinstall csi-driver-nfs
kubectl get all -n kube-system -l app.kubernetes.io/name=csi-driver-nfs
sekarang kita check storage class
kubectl get sc -l app.kubernetes.io/name=csi-driver-nfs
Testing PVC
Sekarang kita akan melakukan test pembuatan PVC
buat pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: nfs-csi
resources:
requests:
storage: 10Giapply yaml tersebut
kubectl apply -f pvc.yamlCheck pvc
kubectl get pvc
Nah sekarang kita check pada NAS Server

Storage sudah terbuat di NAS, dan sudah bisa digunakan