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

