VolumeClaimTemplate
- Docker & Kubernetes kursu
- İleri seviye
- Ders 16/70
- 4 dk
volumeClaimTemplates ile kalıcı depolamayı öğrenirsin.
VolumeClaimTemplate
volumeClaimTemplates, her pod için ayrı bir PersistentVolumeClaim (PVC) şablonudur. 3 kopyalı StatefulSet data-db-0, data-db-1, data-db-2 PVC'lerini oluşturur. Pod silinse de PVC kalır ve yeni pod aynı PVC'ye bağlanır:
spec:
template:
spec:
containers:
- name: postgres
image: postgres:16
volumeMounts:
- name: data
mountPath: /var/lib/postgresql/data
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10GiPVC'leri görmek
PVC adları şablon-adı-pod-adı biçimindedir. Her biri bir PersistentVolume'e bağlanır (Bound):
$ kubectl get pvc -l app=db
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS
data-db-0 Bound pvc-3f2a… 10Gi RWO standard
data-db-1 Bound pvc-8d1e… 10Gi RWO standard
data-db-2 Bound pvc-c4b7… 10Gi RWO standardÖlçek küçültülünce (3 → 2) data-db-2 silinmez; tekrar büyütülünce db-2 aynı veriyle döner.
Uygulama Kalıcı depolama ekle
Bir StatefulSet'in volumeClaimTemplates bölümünü yaz (volumeClaimTemplates: ile başlayarak): şablon adı data; accessModes: ["ReadWriteOnce"]; resources.requests.storage: 10Gi.
Başlangıç kodu
# buraya yazÖrnek çözüm
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10GiBeklenen çıktı
statefulset.apps/db created $ kubectl get pvc NAME STATUS CAPACITY ACCESS MODES data-db-0 Bound 10Gi RWO
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 StatefulSet silinince PVC'lere varsayılan olarak ne olur?
- Hemen silinir
- Başka StatefulSet'e taşınır
- Boşaltılır
- Kalır; veriyi korumak için elle silinmeleri gerekir Doğru cevap
Açıklama: persistentVolumeClaimRetentionPolicy bu davranışı değiştirebilir.
2 Her pod için PVC şablonunu tanımla.
spec:
____:
- metadata:
name: data
spec:
volumeClaimTemplates:
- metadata:
name: data
Açıklama: volumeClaimTemplates StatefulSet'e özeldir.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
volumeClaimTemplates |
Pod başına PVC |
data-db-0 |
PVC adı |
ReadWriteOnce |
Tek node yazar |
Bound |
PV'ye bağlı |