Pod'a PVC bağlama
- Docker & Kubernetes kursu
- İleri seviye
- Ders 35/70
- 4 dk
PVC'yi Pod'a volume olarak bağlamayı öğrenirsin.
Pod'a PVC bağlama
Pod, PVC'yi volumes altında persistentVolumeClaim.claimName ile volume olarak tanımlar ve container'da volumeMounts ile bağlar. Pod silinip yeniden oluşturulduğunda aynı PVC'ye, dolayısıyla aynı veriye bağlanır:
spec:
volumes:
- name: veri
persistentVolumeClaim:
claimName: api-veri
containers:
- name: api
image: api:1.0
volumeMounts:
- name: veri
mountPath: /var/lib/apiKalıcılığı doğrulamak
Veriyi yazıp pod'u silerek kalıcılık sınanır. PVC silinmeden önce onu kullanan pod'lar silinmelidir; aksi hâlde PVC Terminating'de kalır (koruma):
kubectl exec deploy/api -- sh -c 'echo merhaba > /var/lib/api/not.txt'
kubectl delete pod -l app=api
kubectl exec deploy/api -- cat /var/lib/api/not.txt
# merhabaUygulama PVC'yi bağla
Bir pod şablonunun spec bölümünü yaz (spec: ile başlayarak): volumes altında api-veri PVC'sini kullanan veri volume'ü; container adı api, image api:1.0; veri'yi /var/lib/api'ye bağla.
Başlangıç kodu
# buraya yazÖrnek çözüm
spec:
volumes:
- name: veri
persistentVolumeClaim:
claimName: api-veri
containers:
- name: api
image: api:1.0
volumeMounts:
- name: veri
mountPath: /var/lib/apiBeklenen çıktı
deployment.apps/api configured $ kubectl exec deploy/api -- df -h /var/lib/api Filesystem Size Used Avail Use% Mounted on /dev/sdb 4.9G 24K 4.9G 1% /var/lib/api
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Pod'u silip aynı PVC ile yeniden oluşturunca /var/lib/api içindeki dosyalara ne olur?
- Başka pod'a taşınır
- Yerinde kalır Doğru cevap
- Silinir
- Image'dan geri yüklenir
Açıklama: Veri PV'dedir; pod yalnızca onu bağlar.
2 Volume'ün hangi PVC olduğunu belirt.
volumes:
- name: veri
persistentVolumeClaim:
____: api-veri
volumes:
- name: veri
persistentVolumeClaim:
claimName: api-veri
Açıklama: claimName PVC'nin adıdır.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
persistentVolumeClaim |
Volume kaynağı |
claimName |
PVC adı |
mountPath |
Container'daki yol |
Terminating PVC |
Kullanımda olduğu için bekliyor |