Persistent Volume dan Persistent Volume Claim

Subscribe Us

header ads

Persistent Volume dan Persistent Volume Claim

Persistent Volume (PV) dan Persistent Volume Claim (PVC) adalah dua konsep penting dalam manajemen penyimpanan di Kubernetes yang memungkinkan pengelolaan penyimpanan persisten untuk aplikasi yang berjalan di dalam cluster. Berikut adalah penjelasan mendetail mengenai PV dan PVC:


Persistent Volume dan Persistent Volume Claim

1. Persistent Volume (PV)

Definisi:

  • Persistent Volume (PV) adalah sumber daya penyimpanan yang disediakan oleh administrator atau penyedia cloud untuk digunakan dalam cluster Kubernetes. PV berfungsi sebagai representasi fisik dari penyimpanan yang tersedia di cluster.

Fitur Utama:

  • Lifecycle Terpisah dari Pod: PV memiliki lifecycle yang terpisah dari Pod, sehingga data yang disimpan di PV tetap ada meskipun Pod yang menggunakan PV dihapus atau dibuat ulang.
  • Jenis Penyimpanan: PV dapat berupa berbagai jenis penyimpanan, termasuk penyimpanan lokal (hard disk), penyimpanan jaringan (NFS, iSCSI), atau penyimpanan berbasis cloud (AWS EBS, Google Cloud Persistent Disk, Azure Disk).
  • Pengelolaan: PV dapat dikelola secara statis (administrator membuat dan mengonfigurasi PV) atau dinamis (Kubernetes membuat PV secara otomatis berdasarkan permintaan PVC).

Contoh Konfigurasi:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /mnt/data
  storageClassName: manual

  • capacity: Kapasitas penyimpanan yang disediakan oleh PV.
  • accessModes: Mode akses untuk volume (misalnya, ReadWriteOnce, ReadOnlyMany, ReadWriteMany).
  • hostPath: Tipe penyimpanan lokal untuk PV. Untuk penyimpanan berbasis cloud, Anda akan memiliki konfigurasi yang sesuai dengan penyedia cloud.
  • storageClassName: Nama Storage Class yang terkait dengan PV, menentukan kebijakan provisioning dan konfigurasi penyimpanan.

2. Persistent Volume Claim (PVC)

Definisi:

  • Persistent Volume Claim (PVC) adalah permintaan untuk penyimpanan persisten dari pengguna atau aplikasi. PVC memungkinkan Pod untuk mengklaim dan menggunakan penyimpanan dari PV yang ada di cluster sesuai dengan spesifikasi yang diminta.

Fitur Utama:

  • Permintaan Kapasitas dan Akses: PVC memungkinkan pengguna untuk menentukan kapasitas penyimpanan yang dibutuhkan dan mode akses yang diinginkan (misalnya, hanya baca/tulis, baca/tulis di banyak node).
  • Binding dengan PV: Kubernetes secara otomatis mencocokkan PVC dengan PV yang sesuai berdasarkan kapasitas, mode akses, dan Storage Class yang diinginkan. Jika PV yang sesuai tidak tersedia, PVC akan menunggu sampai PV yang cocok dibuat atau tersedia.
  • Dynamic Provisioning: Jika menggunakan Storage Class, Kubernetes dapat secara otomatis membuat PV baru sesuai dengan permintaan PVC jika PV yang cocok tidak tersedia.

Contoh Konfigurasi:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
  storageClassName: manual

  • accessModes: Mode akses yang diminta (misalnya, ReadWriteOnce, ReadOnlyMany, ReadWriteMany).
  • resources.requests.storage: Kapasitas penyimpanan yang diminta.
  • storageClassName: Nama Storage Class yang digunakan untuk mengatur kebijakan provisioning dan konfigurasi.

3. Dynamic vs. Static Provisioning

Dynamic Provisioning:

  • Deskripsi: Kubernetes dapat secara otomatis membuat PV berdasarkan PVC yang meminta penyimpanan. Dynamic provisioning memanfaatkan Storage Class untuk menentukan jenis penyimpanan yang dibutuhkan.
  • Keuntungan: Memudahkan pengelolaan penyimpanan dengan otomatisasi provisioning tanpa memerlukan pembuatan PV manual.

Static Provisioning:

  • Deskripsi: Administrator secara manual membuat dan mengelola PV, dan PVC kemudian dapat mengklaim PV yang ada. Cocok untuk situasi di mana konfigurasi dan pengelolaan penyimpanan memerlukan kontrol lebih.
  • Keuntungan: Memberikan kontrol lebih besar atas konfigurasi penyimpanan dan alokasi PV.

4. Reclaim Policy

Definisi:

  • Reclaim Policy menentukan apa yang harus dilakukan dengan PV setelah PVC yang menggunakannya dihapus.

Opsi Reclaim Policy:

  • Retain: PV tidak dihapus dan tetap ada untuk memungkinkan data dipulihkan secara manual. Admin perlu menghapus PV secara manual.
  • Recycle: PV dikembalikan ke kondisi awal (misalnya, data dihapus) dan dapat digunakan kembali untuk PVC baru.
  • Delete: PV dihapus secara otomatis ketika PVC yang menggunakannya dihapus. Cocok untuk penyimpanan berbasis cloud yang memungkinkan penghapusan otomatis.

Contoh Reclaim Policy pada PV:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /mnt/data
  storageClassName: manual
  reclaimPolicy: Retain

5. Contoh Penggunaan dalam Pod

Contoh:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
    - name: my-container
      image: my-image
      volumeMounts:
        - mountPath: /data
          name: my-volume
  volumes:
    - name: my-volume
      persistentVolumeClaim:
        claimName: my-pvc

  • volumeMounts: Mengaitkan volume PVC dengan direktori di dalam kontainer.
  • volumes: Mengaitkan PVC dengan Pod sehingga kontainer dapat mengakses penyimpanan.

Dengan PV dan PVC, Kubernetes menyediakan mekanisme yang kuat untuk pengelolaan penyimpanan persisten, memungkinkan aplikasi untuk menyimpan dan mengelola data secara efektif dalam lingkungan terdistribusi. Apakah Anda memiliki pertanyaan lebih lanjut tentang PV, PVC, atau aspek lain dari penyimpanan di Kubernetes?

 

Posting Komentar

0 Komentar

AdS

Subscribe

Social Plugin