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