0Pricing
Kubernetes Basics · Pelajaran

Volume Persisten dan Klaim

Pahami cara menyediakan penyimpanan tahan lama untuk Pod menggunakan Persistent Volumes dan Persistent Volume Claims.

Volume Persisten dan Klaim adalah pelajaran Kubernetes Basics gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Kubernetes Basics, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kubernetes Basics mencakup 4 pelajaran total.

Pod dan Data Sementara

Pod dapat dibuat dan dihentikan, tetapi data aplikasi Anda sering kali perlu tetap ada. Pikirkan tentang basis data atau file yang diunggah pengguna.

  • Saat Pod dimulai ulang atau dijadwalkan ulang, semua data yang disimpan langsung di sistem file kontainernya akan hilang.
  • Sifat sementara ini cocok untuk aplikasi tanpa status, tetapi data penting memerlukan solusi yang tahan lama.
  • Kubernetes menyediakan sistem yang kuat untuk mengelola penyimpanan persisten yang tetap ada sepanjang siklus hidup Pod.

PersistentVolume: Penyimpanan Klaster

PersistentVolume (PV) adalah bagian penyimpanan di klaster Kubernetes Anda.

  • Ini adalah sumber daya dengan cakupan klaster, yang berarti sumber daya tersebut tidak dimiliki oleh namespace tertentu.
  • PV disediakan oleh administrator atau secara dinamis oleh StorageClass.
  • PV menyembunyikan detail teknologi penyimpanan yang mendasarinya (misalnya, Google Persistent Disk, AWS EBS, dan berbagi NFS).

Mendefinisikan PersistentVolume

PV didefinisikan dengan detail seperti kapasitas, mode akses, dan jenis penyimpanan. YAML ini menjelaskan PV yang menggunakan hostPath (untuk pengujian lokal) dengan penyimpanan sebesar 5 Gigabita.

apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-local-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  hostPath:
    path: "/mnt/data"

Catatan: hostPath biasanya digunakan untuk pengembangan pada satu node dan tidak disarankan untuk produksi.

PersistentVolumeClaim: Permintaan Pod

PersistentVolumeClaim (PVC) adalah permintaan penyimpanan oleh pengguna atau aplikasi dalam namespace tertentu.

  • Pod tidak menggunakan PV secara langsung; Pod meminta penyimpanan melalui PVC.
  • PVC memiliki cakupan namespace, sehingga berada di dalam area proyek atau tim tertentu.
  • PVC menentukan ukuran yang diinginkan, mode akses, dan, secara opsional, kelas penyimpanan.

PV dan PVC: Pencocoknya

Kubernetes secara otomatis mencocokkan PVC dengan PV yang tersedia melalui proses yang disebut pengikatan.

  • Saat PVC dibuat, Kubernetes mencari PV yang memenuhi persyaratan PVC (ukuran, mode akses, dan kelas penyimpanan).
  • Setelah PV yang sesuai ditemukan, keduanya akan "diikat" dalam hubungan satu-ke-satu.
  • Pengikatan ini memastikan PVC mendapatkan penyimpanan tertentu yang dimintanya.

Mode Akses untuk PV/PVC

Mode akses menentukan cara penyimpanan dapat dipasang dan digunakan oleh Pod. Mode ini diminta oleh PVC dan didukung oleh PV:

  • ReadWriteOnce (RWO): Volume dapat dipasang sebagai baca-tulis oleh satu node.
  • ReadOnlyMany (ROX): Volume dapat dipasang sebagai hanya-baca oleh banyak node.
  • ReadWriteMany (RWX): Volume dapat dipasang sebagai baca-tulis oleh banyak node.

Ketersediaan mode ini bergantung pada penyedia penyimpanan tertentu.

Kelas Penyimpanan untuk Otomatisasi

StorageClass menyediakan cara bagi administrator untuk menjelaskan "kelas" penyimpanan (misalnya, "fast-ssd" dan "slow-hdd").

  • Alih-alih membuat PV secara manual, StorageClass dapat menyediakan PV secara dinamis saat PVC memintanya.
  • Hal ini mengotomatiskan pembuatan PV berdasarkan templat yang telah ditentukan.
  • Hal ini memisahkan penyediaan penyimpanan dari penggunaannya, sehingga memudahkan pengguna.

Contoh Membuat PVC

Mari buat PVC yang meminta penyimpanan sebesar 1 Gigabita dengan akses ReadWriteOnce. PVC ini akan mencari PV yang sudah ada atau memicu penyediaan dinamis melalui StorageClass.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-app-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: standard # Optional: if you have a 'standard' StorageClass

Simpan ini sebagai pvc.yaml dan terapkan dengan kubectl apply -f pvc.yaml.

Menggunakan PVC dalam Pod

Setelah PVC terikat, Pod dapat menggunakannya dengan mereferensikan nama PVC dalam konfigurasi volumenya. Pod tidak perlu mengetahui PV yang mendasarinya, cukup PVC tersebut.

apiVersion: v1
kind: Pod
metadata:
  name: my-data-pod
spec:
  containers:
    - name: data-container
      image: busybox
      command: ["/bin/sh", "-c", "echo 'Hello from CoddyKit!' > /mnt/data/hello.txt && sleep 3600"]
      volumeMounts:
        - name: persistent-storage
          mountPath: /mnt/data
  volumes:
    - name: persistent-storage
      persistentVolumeClaim:
        claimName: my-app-pvc

Pod ini akan menulis file ke volume persisten yang dipasang.

Memantau PV dan PVC

Anda dapat memantau status sumber daya penyimpanan persisten menggunakan kubectl:

  • Untuk melihat semua PV: kubectl get pv
  • Untuk melihat semua PVC dalam namespace Anda: kubectl get pvc
  • Untuk mendapatkan informasi terperinci, termasuk status dan peristiwa:
    • kubectl describe pv <pv-name>
    • kubectl describe pvc <pvc-name>

Pastikan PV Anda berstatus Bound dan PVC terikat (Bound) ke PV yang benar.

Memahami PV vs. PVC

Seorang pengguna ingin menerapkan basis data yang memerlukan penyimpanan persisten sebesar 50GB. Sumber daya Kubernetes manakah yang secara langsung merepresentasikan permintaan penyimpanan ini dari aplikasi pengguna?

Ringkasan Penyimpanan Persisten

Kita telah membahas cara Kubernetes mengelola penyimpanan tahan lama untuk aplikasi Anda:

  • PersistentVolumes (PVs) adalah sumber daya klaster yang merepresentasikan penyimpanan sebenarnya.
  • PersistentVolumeClaims (PVCs) adalah permintaan pengguna untuk penyimpanan.
  • Kubernetes mengikat PVC ke PV yang sesuai berdasarkan persyaratan.
  • Mode Akses menentukan cara penyimpanan dapat digunakan (RWO, ROX, RWX).
  • StorageClass memungkinkan penyediaan PV secara dinamis dan mengotomatiskan penyiapannya.

Sistem ini memastikan data aplikasi Anda tetap ada meskipun Pod datang dan pergi, sehingga menyediakan keandalan untuk aplikasi berstatus.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Volume Persisten dan Klaim” gratis?

Ya — teks lengkap “Volume Persisten dan Klaim” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kubernetes Basics, upgrade ke CoddyKit PRO. Kursus Kubernetes Basics mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Volume Persisten dan Klaim”?

Pahami cara menyediakan penyimpanan tahan lama untuk Pod menggunakan Persistent Volumes dan Persistent Volume Claims. Kamu berlatih Kubernetes Basics dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Kubernetes Basics?

Tidak diperlukan pengalaman sebelumnya. Kubernetes Basics di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Volume Persisten dan Klaim” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Kubernetes Basics ini?

Ya. Setiap pelajaran Kubernetes Basics menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. ConfigMaps untuk Konfigurasi
  2. Secret untuk Data Sensitif
  3. Volume Persisten dan Klaim
  4. StorageClasses dan Provisioning Dinamis
← Kembali ke Kubernetes Basics