Posted in

NFS-CSI Driver for Kubernetes

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 -y

Configuration

Menambahkan helm chart csi driver

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

Check 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.yaml

Disini 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.1

Kemudian 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.yaml

Check 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: 10Gi

apply yaml tersebut

kubectl apply -f pvc.yaml

Check pvc

kubectl get pvc

Nah sekarang kita check pada NAS Server

Storage sudah terbuat di NAS, dan sudah bisa digunakan

Leave a Reply

Your email address will not be published. Required fields are marked *