Menggunakan NFS untuk StorageClass pada OpenShift

Menggunakan NFS untuk StorageClass pada OpenShift

Storage Class dapat mempermudah user untuk pneggunaan storage pada container orchestration. Dengan Storage Class, user hanya perlu membuat sebuah Persisten Volume Claim (PVC) dan tanpa perlu sentuhan sedikitput di ranah Persistent Volume atatu NFS server untuk menggunakan layanan storage.

Pada tutorial ini kita menggunakan Kubernetes Incubator untuk membangun Storage Class dan automatic storage provisioning
Berikut adalah requirement yg dibutuhkan :

  1. Red Hat OpenShift
  2. NFS Server

Berikut adalah tutorial untuk membangun Storage Class :

[root@helper ~]# git clone https://github.com/pieterdauds/openshift-nfs-storageclass.git
[root@helper ~]# cd openshift-nfs-storageclass/deploy

Membuat project dengan nama openshift-nfs-storage

[root@helper ~]# oc new-project openshift-nfs-storage
[root@helper ~]# oc label namespace openshift-nfs-storage "openshift.io/cluster-monitoring=true"

Deploy RBAC untuk nfs storage class

[root@helper ~]# oc create -f rbac.yaml

Update permission Service Account

[root@helper ~]# oc adm policy add-scc-to-user hostmount-anyuid system:serviceaccount:openshift-nfs-storage:nfs-client-provisioner

Ubah file yaml untuk menyesuaikan environtment, ada 2 file yaml yang perlu di ubah, yaitu file deployment.yaml (automatic storage provision) dan file class.yaml (Storage Class) :

class.yaml

Key Value
provisioner helper.ocpdev/nfs

deployment.yaml

Environtment Variable Name Value
PROVISIONER_NAME helper.ocpdev/nfs
NFS_SERVER 192.168.1.10
NFS_PATH /mnt/nfs-storage

Berikut adalah hasil file yang sudah di ubah.

class.yaml

[root@helper ~]# cat class.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: helper-nfs-storage
provisioner: helper.ocpdev/nfs # or choose another name, must match deployment's env PROVISIONER_NAME'
parameters:
  archiveOnDelete: "false"

deployment.yaml

[root@helper ~]# cat deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nfs-client-provisioner
  labels:
    app: nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: openshift-nfs-storage
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: nfs-client-provisioner
  template:
    metadata:
      labels:
        app: nfs-client-provisioner
    spec:
      serviceAccountName: nfs-client-provisioner
      containers:
        - name: nfs-client-provisioner
          image: quay.io/external_storage/nfs-client-provisioner:latest
          volumeMounts:
            - name: nfs-client-root
              mountPath: /persistentvolumes
          env:
            - name: PROVISIONER_NAME
              value: helper.ocpdev/nfs
            - name: NFS_SERVER
              value: 192.168.1.10
            - name: NFS_PATH
              value: /mnt/nfs-storage
      volumes:
        - name: nfs-client-root
          nfs:
            server: 192.168.1.10
            path: /mnt/nfs-storage

Deploy Storage Class dan Deployment yang baru saja kita ubah.

StorageClass :

[root@helper ~]# oc create -f class.yaml
[root@helper ~]# oc get storageclass
NAME PROVISIONER AGE
helper-nfs-storage helper.ocpdev/nfs 1m

Deployment :

[root@helper ~]# oc apply -f deployment.yaml
[root@helper ~]# oc get pods
NAME READY STATUS RESTARTS AGE
nfs-client-provisioner-774b9f6b94-knb9f 0/1 Running 5 1m

Console >> Administrator >> Storage > Storage Class

Sampai di sini Storage Class sudah dapat di gunakan.

Untuk melakukan percobaan apakah storage class tersebut sudah bisa di gunakan kita dapat melakukan pengetesan PVC dengan menggunakan file test-claim.yaml. File tersebut melakukan pembuatan PVC dengan memanggil storage class bernama helper-nfs-storage.

[root@helper deploy]# oc create -f test-claim.yaml
persistentvolumeclaim/test-claim created

Cek pv dan pvc :

[root@helper deploy]# oc get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
test-claim Bound pvc-cae8b478-f893-49b4-b533-1c0340c4aeb2 1Mi RWX helper-nfs-storage 24s

Secara otomatis PV akan ter create secara otomatis.

[root@helper deploy]# oc get pv 
pvc-cae8b478-f893-49b4-b533-1c0340c4aeb2 1Mi RWX Delete Bound openshift-nfs-storage/test-claim helper-nfs-storage 72s

Semoga Bermanfaat . . . 

 

Sumber :
https://github.com/kubernetes-retired/external-storage

About the author
arisyi

Routecloud Networks

Information about Server, Linux and Computer Network.

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to Routecloud Networks.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.