Kubernetes’te verileri kalıcı hale getirmek istiyorsan üç ana kavramı çok iyi bilmen gerekiyor: PV (PersistentVolume), PVC (PersistentVolumeClaim) ve StorageClass. bunları tek tek açıklayalım ki StorageClass konusu anlaşılsın veya önce ki makalelerim okuyabilrsiniz ama ben yine de bu makale de özet geçmek istiyorum
🧱 PV (PersistentVolume) — “Diskin hazır”
PersistentVolume, admin’in önceden oluşturduğu fiziksel ya da sanal bir disk alanıdır. Uygulamalar bu alanı doğrudan kullanmaz; sadece talep eder. Yani bu bir hazır kaynak gibidir.
🙋 PVC (PersistentVolumeClaim) — “Disk istiyorum!”
PVC, uygulamanın “Bana şu kadar alan lazım” diye yaptığı taleptir. Sistem bu taleple uyumlu bir PV varsa otomatik olarak eşleştirir. PVC, PV’yi talep etmek için kullanılır.
⚙️ StorageClass — “Dinamik disk üret”
StorageClass, her PVC için Kubernetes’in otomatik olarak PV oluşturmasına olanak tanır. Yani PV’leri tek tek elle oluşturmakla uğraşmazsın. Bir nevi otomatik üretim hattı gibi çalışır.
💡 Örnekle Açalım:
Eğer PV’yi önceden elle oluşturursan → StorageClass’a gerek yok.
Eğer her PVC isteğinde otomatik disk oluşsun istersen → StorageClass şart.
🧪 Küçük Bir Senaryo:
Uygulaman AWS üzerinde çalışıyor ve her pod için ayrı 10Gi SSD diske ihtiyaç duyuyorsun. PV’leri tek tek oluşturmak zahmetli.
👉 Bu durumda bir StorageClass tanımlarsın (örneğin: fast-ssd)
👉 PVC’ye sadece storageClassName: fast-ssd yazarsın
👉 Kubernetes senin için otomatik olarak o PVC’ye uygun PV’yi oluşturur ✅
özetle sürekli pv yaratmana gerek yok pvc oluşturuken ismini ver geç .)