Persistent Volume (PV) Kubernetes: Pengertian, Cara Kerja, Arsitektur, Komponen, Jenis, Manfaat, Kelebihan, dan Implementasinya | Dewa234
Persistent Volume (PV) Kubernetes: Pengertian, Cara Kerja, Arsitektur, Komponen, Jenis, Manfaat, Kelebihan, dan Implementasinya
Setelah memahami Volume Kubernetes, langkah berikutnya adalah mempelajari Persistent Volume (PV). Jika Volume biasa digunakan untuk penyimpanan selama Pod masih berjalan, maka Persistent Volume menyediakan media penyimpanan yang tetap tersedia meskipun Pod dihentikan, dipindahkan, atau dibuat ulang.
Persistent Volume merupakan resource tingkat Cluster yang mewakili penyimpanan fisik maupun virtual. Dengan PV, data aplikasi dapat dipertahankan secara persisten sehingga sangat penting untuk database, sistem file, aplikasi enterprise, dan layanan lain yang memerlukan data jangka panjang.
Apa Itu Persistent Volume (PV)?
Persistent Volume (PV) adalah resource penyimpanan dalam Kubernetes yang dikelola oleh Cluster. PV menyediakan kapasitas penyimpanan yang dapat digunakan oleh Pod melalui Persistent Volume Claim (PVC), sehingga aplikasi tidak bergantung pada penyimpanan sementara milik Pod.
Mengapa Persistent Volume Penting?
- Data tetap tersedia meskipun Pod dihapus.
- Mendukung aplikasi yang memerlukan penyimpanan jangka panjang.
- Memisahkan lifecycle data dari lifecycle Pod.
- Mendukung berbagai backend penyimpanan.
- Meningkatkan keandalan aplikasi.
- Menjadi fondasi storage persisten di Kubernetes.
Bagaimana Cara Kerja Persistent Volume?
- Administrator membuat Persistent Volume atau menggunakan StorageClass.
- PV menyediakan kapasitas penyimpanan.
- Aplikasi membuat Persistent Volume Claim (PVC).
- Kubernetes mencocokkan PVC dengan PV yang sesuai.
- Pod me-mount PVC sebagai Volume.
- Data tetap tersimpan meskipun Pod dibuat ulang.
Ilustrasi Cara Kerja Persistent Volume
Application
│
▼
Pod
│
▼
Persistent Volume Claim
│
▼
Persistent Volume
│
▼
Storage Backend
(NFS, SSD, Cloud Disk, dll.)
Arsitektur Persistent Volume
+------------------------+
| Pod |
+-----------+------------+
│
▼
+------------------------+
| Persistent VolumeClaim |
+-----------+------------+
│
▼
+------------------------+
| Persistent Volume |
+-----------+------------+
│
▼
Physical / Cloud Storage
Komponen Persistent Volume
| Komponen | Fungsi |
|---|---|
| Persistent Volume | Menyediakan media penyimpanan persisten. |
| Persistent Volume Claim | Meminta kapasitas penyimpanan. |
| Storage Backend | Menyediakan media penyimpanan fisik atau cloud. |
| StorageClass | Mengelola provisioning penyimpanan secara dinamis. |
| Pod | Menggunakan storage melalui PVC. |
Jenis Backend Persistent Volume
| Backend | Keterangan |
|---|---|
| NFS | Penyimpanan berbasis jaringan. |
| iSCSI | Storage berbasis blok melalui jaringan. |
| Ceph | Distributed Storage. |
| Amazon EBS | Block Storage pada AWS. |
| Google Persistent Disk | Block Storage pada Google Cloud. |
| Azure Disk | Block Storage pada Microsoft Azure. |
Fitur Utama Persistent Volume
- Persistent Storage.
- Storage Abstraction.
- Dynamic Provisioning.
- Storage Reclaim Policy.
- Multi Storage Backend.
- Capacity Management.
Manfaat Persistent Volume
- Menjaga data tetap aman.
- Mendukung database dan aplikasi stateful.
- Mengurangi risiko kehilangan data.
- Mempermudah migrasi Pod.
- Meningkatkan fleksibilitas infrastruktur.
Kelebihan Persistent Volume
- Data tidak bergantung pada Pod.
- Mendukung banyak penyedia storage.
- Dapat digunakan ulang.
- Terintegrasi dengan StorageClass.
- Cocok untuk aplikasi enterprise.
Kekurangan Persistent Volume
- Konfigurasi lebih kompleks dibanding Volume biasa.
- Membutuhkan backend storage yang sesuai.
- Administrasi kapasitas perlu diperhatikan.
- Beberapa backend memiliki biaya tambahan.
Contoh Implementasi Persistent Volume
- Database MySQL.
- PostgreSQL.
- MongoDB.
- WordPress.
- Jenkins.
- GitLab.
- Aplikasi Enterprise.
Contoh YAML Persistent Volume
apiVersion: v1
kind: PersistentVolume
metadata:
name: app-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /data/storage
Perintah kubectl yang Sering Digunakan
kubectl get pv kubectl describe pv app-pv kubectl apply -f pv.yaml kubectl delete pv app-pv
Best Practice Menggunakan Persistent Volume
- Gunakan StorageClass untuk provisioning dinamis.
- Pilih backend sesuai kebutuhan aplikasi.
- Terapkan backup secara berkala.
- Gunakan reclaim policy yang sesuai.
- Pantau kapasitas storage.
- Hindari penggunaan hostPath pada produksi.
- Dokumentasikan konfigurasi storage.
Troubleshooting Umum
| Masalah | Penyebab | Solusi |
|---|---|---|
| PV tidak digunakan. | Belum ada PVC yang sesuai. | Buat PVC dengan kapasitas dan access mode yang cocok. |
| Status Pending. | Backend storage tidak tersedia. | Periksa StorageClass atau backend penyimpanan. |
| Pod gagal me-mount volume. | PV belum terhubung ke PVC. | Periksa proses binding. |
| Kapasitas tidak cukup. | Storage terlalu kecil. | Perbesar kapasitas atau buat PV baru. |
Baca Juga
Artikel Selanjutnya
Persistent Volume menyediakan media penyimpanan di tingkat Cluster. Namun, aplikasi tidak menggunakan PV secara langsung. Untuk meminta dan menggunakan kapasitas penyimpanan tersebut, Kubernetes menyediakan Persistent Volume Claim (PVC), yang menjadi penghubung antara Pod dan Persistent Volume.
Pertanyaan yang Sering Diajukan (FAQ)
Apa itu Persistent Volume (PV)?
Persistent Volume adalah resource penyimpanan di Kubernetes yang menyediakan media penyimpanan persisten dan tidak bergantung pada lifecycle Pod.
Apa perbedaan Volume dan Persistent Volume?
Volume biasa umumnya mengikuti lifecycle Pod, sedangkan Persistent Volume tetap tersedia meskipun Pod dihapus dan dapat digunakan kembali melalui Persistent Volume Claim.
Apakah Pod menggunakan Persistent Volume secara langsung?
Tidak. Pod mengakses Persistent Volume melalui Persistent Volume Claim (PVC), yang bertindak sebagai permintaan penyimpanan dari aplikasi.
Apakah Persistent Volume hanya untuk database?
Tidak. PV dapat digunakan untuk berbagai aplikasi yang membutuhkan penyimpanan persisten, seperti sistem manajemen konten, alat CI/CD, penyimpanan file, dan aplikasi enterprise lainnya.
Kesimpulan
Persistent Volume (PV) merupakan fondasi penyimpanan persisten di Kubernetes yang memisahkan data dari lifecycle Pod. Dengan memanfaatkan PV, aplikasi dapat mempertahankan data meskipun Pod mengalami restart atau dipindahkan ke Node lain. Setelah memahami Persistent Volume, langkah berikutnya adalah mempelajari Persistent Volume Claim (PVC), yang memungkinkan aplikasi meminta dan menggunakan penyimpanan tersebut secara fleksibel.