CodeBlanks Logo Icon CodeBlanks

Pod'a PVC bağlama

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/api

Kalı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
# merhaba

Uygulama 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

terminal
# buraya yaz

Örnek çözüm

terminal
spec:
  volumes:
    - name: veri
      persistentVolumeClaim:
        claimName: api-veri
  containers:
    - name: api
      image: api:1.0
      volumeMounts:
        - name: veri
          mountPath: /var/lib/api

Beklenen çı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.

Soru
      volumes:
        - name: veri
          persistentVolumeClaim:
            ____: api-veri
Cevap
      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

İleri seviye bölümündeki tüm dersler