create pv & pvc kubernetes from existing nfs server

0
92

halo sobat sekolahlinux lama tidak update nih, kali ini saya akan sedikit menuliskan tutorial sederhana yaitu create pv & pvc kubernetes from existing nfs server, dalam hal ini saya beranggapan bahwa sobat sudah membuat nfs server nya dengan detail url dibawah

nfs server:

192.168.100.10:/data-nfs/var/www/html
192.168.100.10:/data-nfs/etc/nginx/sites-enabled

selanjutnya kita akan membuat manifest pv & pvc nya, untuk contoh saya akan membuat 2 buah pv & pvc manifest dengan tujuan yg berbeda, kalian bisa lihat dibawah ini

pvc-webrootdir.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: data-web
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.100.10
    path: "/data-nfs/var/www/html"

---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: data-web
  namespace: sekolahlinux
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: ""
  resources:
    requests:
      storage: 10Gi

pvc-nginxdir.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: data-nginx
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  nfs:
    server: 10.179.117.50
    path: "/data-nfs/etc/nginx/sites-enabled"

---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: data-nginx
  namespace: sekolahlinux
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: ""
  resources:
    requests:
      storage: 5Gi

lalu jika sudah jalankan perintah dibawah ini

kubectl apply -f pvc-nginxdir.yaml
kubectl apply -f pvc-webrootdir.yaml

selanjutnya kita akan melihat apakah pvc yang sudah kita apply sudah berhasil dibuat atau belum

katavm@kata-production-controlbox:~$ kubectl get pvc,pv -n monitoring|grep "data-"
persistentvolumeclaim/data-web	  Bound	 data-web    10Gi     RWX      1h
persistentvolumeclaim/data-nginx  Bound	 data-nginx  10Gi     RWX      1h
persistentvolume/data-web         10Gi	 RWX         Retain   Bound    1h
persistentvolume/data-nginx       10Gi	 RWX         Retain   Bound    1h

 

selanjutkan kita akan membuat deployment manifest k8s untuk bisa menggunakan pv & pvc yang telah kita buat diatas

sekolahlinux-wp.yaml

---
apiVersion: v1
kind: Service
metadata:
  name: sekolahlinux-wp-service
  namespace: sekolahlinux
  labels:
    app: sekolahlinux
spec:
  type: LoadBalancer
  ports:
    - name: http
      port: 80
      targetPort: 80
    - name: https
      port: 443
      targetPort: 443
  selector:
    app: sekolahlinux
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: sekolahlinux-wp
  namespace: sekolahlinux
spec:
  revisionHistoryLimit: 2
  strategy:
    type: RollingUpdate
  replicas: 4
  selector:
    matchLabels:
      app: sekolahlinux
  template:
    metadata:
      labels:
        app: sekolahlinux
    spec:
      containers:
      - name: sekolahlinux-wp
        image: richarvey/nginx-php-fpm
        imagePullPolicy: IfNotPresent
        volumeMounts:
        - name: data-web
          mountPath: "/var/www/html"
        - name: data-nginx
          mountPath: "/etc/nginx/sites-enabled"
        ports:
          - containerPort: 80
          - containerPort: 443
      volumes:
      - name: data-nginx
        persistentVolumeClaim:
          claimName: data-nginx
      - name: data-web
        persistentVolumeClaim:
          claimName: data-web

lalu jika sudah jalankan perintah dibawah ini

kubectl apply -f sekolahlinux-wp.yaml

oke sekian dokumentasi saya kali ini, untuk membaca lebih jauh tentang volume pada kubernetes kalian bisa langsung berkunjung ke url dibawah ini

LEAVE A REPLY

Please enter your comment!
Please enter your name here