Apa itu Persistent Volume (PV) dan Persistent Volume Claim (PVC) di Kubernetes?
Kalo lo lagi bikin aplikasi di Kubernetes, pasti ngeh kalo penyimpanan data itu penting banget. Tapi, beda dengan penyimpanan data di aplikasi biasa, Kubernetes punya cara sendiri buat urusin penyimpanan data yang lebih scalable dan robust. Nah, disini kita bakal bahas tentang Persistent Volume (PV) dan Persistent Volume Claim (PVC).
Persistent Volume (PV)
Persistent Volume (PV) itu kayak hard drive di Kubernetes. Jadi, PV merupakan sebuah resource di cluster yang udah disediakan sama admin buat nampung data yang butuh persistensi (enggak ilang meskipun pod mati atau dihapus).
PV ini independen, artinya mereka gak terikat sama pod mana pun. Lo bisa pake PV buat menyimpan data krusial yang harus tetap ada dan gak boleh ilang. Contoh PV itu bisa berupa NFS, cloud storage seperti EBS atau GCP Persistent Disk, atau bahkan local storage di mesin tertentu.
Nah, PV punya siklus hidupnya sendiri, yaitu:
- Provisioning: PV bisa dibuat secara manual (static provisioning) atau otomatis (dynamic provisioning).
- Binding: Saat PVC request storage, Kubernetes bakal mencocokkan PVC dengan PV yang sesuai. Kalo cocok, mereka bakal “terikat”.
- Using: Pod bisa pake PV dengan cara ngelampirin PV ke PVC.
- Releasing: Kalo pod udah selesai pake PV, PVC bisa dihapus dan PV jadi “available” lagi.
- Reclaiming: Setelah dilepas, PV bisa dihapus (delete), direset (recycle), atau dipertahankan (retain) tergantung kebijakannya.
Persistent Volume Claim (PVC)
Nah, kalo Persistent Volume Claim (PVC) itu ibarat kita mau sewa hard drive di Kubernetes. PVC itu adalah request buat dapet PV yang sesuai dengan kebutuhan kita.
Misalnya, lo butuh storage dengan ukuran tertentu dan akses mode tertentu (misal, read-write once atau read-write many). PVC bakal nyari PV yang sesuai dengan permintaan lo. Kalo ada, Kubernetes bakal ngasih PV itu sebagai tempat penyimpanan lo.
PVC ini bakal mempermudah kita sebagai pengguna karena lo gak perlu pusing mikirin detail dari PV yang ada. Lo cuma perlu ngasih tau apa yang lo butuhin, dan Kubernetes bakal ngurus sisanya.
Perbandingan PV dan PVC
- PV: Kayak hard drive yang udah disediain sama admin. Bisa dipake buat banyak aplikasi, tapi gak terikat sama pod tertentu.
- PVC: Kayak tiket sewa buat dapet hard drive (PV) yang sesuai kebutuhan lo. PVC ini spesifik buat aplikasi lo dan terikat sama pod.
Gimana Cara Bikin PV dan PVC?
Buat ngebuat PV, lo bisa pake YAML kayak gini:
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: manual
hostPath:
path: /mnt/data
Sedangkan PVC bisa dibikin dengan YAML seperti ini:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
Kesimpulan
Nah, dengan PV dan PVC, lo bisa bikin aplikasi yang lebih reliable di Kubernetes. PV sebagai penyimpanan persisten, dan PVC sebagai alat buat ngakses PV tersebut. Jadi, gak perlu takut data ilang meskipun pod di-restart atau dihapus.
Metode ini ngebuat manajemen storage lebih mudah dan scalable, karena lo gak perlu atur storage secara manual tiap buat pod baru. Cukup buat PVC, dan Kubernetes bakal nyediain PV yang sesuai dengan kebutuhan lo.
Jadi, paham kan sekarang? Kalo lo butuhin storage buat aplikasi lo di Kubernetes, tinggal pakai PV dan PVC aja. Udah gitu, lo juga gak perlu pusing atur hard drive secara manual. Semua diurus sama Kubernetes!