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 DevOps Bootcamp 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 DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp 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 DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp 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 DevOps Bootcamp 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 DevOps Bootcamp?
Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp 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 DevOps Bootcamp ini?
Ya. Setiap pelajaran DevOps Bootcamp 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
- ConfigMaps untuk Konfigurasi
- Secret untuk Data Sensitif
- Volume Persisten dan Klaim
- StorageClasses dan Provisioning Dinamis