Kalıcı Birimler ve Talepler
Persistent Volumes ve Persistent Volume Claims kullanarak Pod'lara kalıcı depolama sağlamayı anlayın.
Kalıcı Birimler ve Talepler, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
Pod'lar ve Geçici Veriler
Pod'lar oluşturulur ve sonlandırılır, ancak uygulamanızın verilerinin çoğu zaman varlığını sürdürmesi gerekir. Bir veritabanını veya kullanıcıların yüklediği dosyaları düşünün.
- Bir Pod yeniden başlatıldığında veya başka bir yerde yeniden zamanlandığında, doğrudan kapsayıcının dosya sisteminde saklanan tüm veriler kaybolur.
- Bu geçici yapı durumsuz uygulamalar için uygundur, ancak kritik veriler kalıcı bir çözüm gerektirir.
- Kubernetes, Pod yaşam döngülerinden bağımsız olarak varlığını sürdüren kalıcı depolamayı yönetmek için güçlü bir sistem sağlar.
PersistentVolume: Küme Depolaması
PersistentVolume (PV), Kubernetes kümenizdeki bir depolama alanıdır.
- Küme kapsamlı bir kaynaktır; yani belirli bir ad alanına ait değildir.
- PVs bir yönetici tarafından veya StorageClass aracılığıyla dinamik olarak sağlanır.
- Altta yatan depolama teknolojisinin ayrıntılarını soyutlar (ör. Google Persistent Disk, AWS EBS, NFS paylaşımı).
PersistentVolume Tanımlama
PVs; kapasite, erişim kipleri ve depolama türü gibi ayrıntılarla tanımlanır. Bu YAML, 5 Gigabayt depolama içeren bir hostPath (yerel test için) kullanan bir PV'yi açıklar.
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-local-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
hostPath:
path: "/mnt/data"
Not: hostPath genellikle tek düğümlü geliştirme için kullanılır ve üretim ortamı için önerilmez.
PersistentVolumeClaim: Pod'un Depolama İsteği
PersistentVolumeClaim (PVC), belirli bir ad alanındaki bir kullanıcı veya uygulama tarafından yapılan depolama isteğidir.
- Pod'lar PV'leri doğrudan kullanmaz; depolamayı bir PVC aracılığıyla ister.
- PVCs ad alanı kapsamındadır; bu nedenle belirli bir projenin veya ekibin alanında bulunur.
- İstenen boyutu, erişim kiplerini ve isteğe bağlı olarak bir depolama sınıfını belirtir.
PV ve PVC: Eşleştiriciler
Kubernetes, bağlama adı verilen bir işlemle bir PVC'yi kullanılabilir bir PV ile otomatik olarak eşleştirir.
- Bir PVC oluşturulduğunda Kubernetes, PVC'nin gereksinimlerini (boyut, erişim kipleri, depolama sınıfı) karşılayan bir PV arar.
- Uygun bir PV bulunduğunda ikisi bire bir ilişkiyle birbirine "bağlanır".
- Bu bağlama, PVC'nin istediği belirli depolama alanını almasını sağlar.
PVs/PVCs İçin Erişim Kipleri
Erişim kipleri, depolamanın Pod'lar tarafından nasıl bağlanıp kullanılabileceğini tanımlar. Bu kipler PVCs tarafından istenir ve PVs tarafından desteklenir:
- ReadWriteOnce (RWO): Birim, tek bir düğüm tarafından okuma-yazma modunda bağlanabilir.
- ReadOnlyMany (ROX): Birim, birçok düğüm tarafından yalnızca okuma modunda bağlanabilir.
- ReadWriteMany (RWX): Birim, birçok düğüm tarafından okuma-yazma modunda bağlanabilir.
Bu kiplerin kullanılabilirliği, belirli depolama sağlayıcısına bağlıdır.
Otomasyon İçin StorageClass
StorageClass, yöneticilerin depolama "sınıflarını" (ör. "fast-ssd", "slow-hdd") tanımlamasını sağlar.
- PV'leri elle oluşturmak yerine bir StorageClass, PVC istediğinde bir PV'yi dinamik olarak sağlayabilir.
- Bu işlem, önceden tanımlanmış şablonlara göre PV'lerin oluşturulmasını otomatikleştirir.
- Depolama sağlama işlemini depolamanın kullanımından ayırarak kullanıcıların işini kolaylaştırır.
PVC Oluşturma Örneği
ReadWriteOnce erişimiyle 1 Gigabayt depolama isteyen bir PVC oluşturalım. Bu PVC, mevcut bir PV arayacak veya bir StorageClass aracılığıyla dinamik sağlama işlemini tetikleyecektir.
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
Bunu pvc.yaml olarak kaydedin ve kubectl apply -f pvc.yaml ile uygulayın.
Pod'da PVC Kullanma
Bir PVC bağlandıktan sonra Pod, birim yapılandırmasında PVC'nin adına başvurarak onu kullanabilir. Pod'un altta yatan PV hakkında bilgi sahibi olması gerekmez; yalnızca PVC'yi bilmesi yeterlidir.
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
Bu Pod, bağlanmış kalıcı birime bir dosya yazacaktır.
PVs ve PVCs'leri İzleme
Kalıcı depolama kaynaklarınızın durumunu kubectl kullanarak izleyebilirsiniz:
- Tüm PV'leri görmek için:
kubectl get pv - Ad alanınızdaki tüm PVC'leri görmek için:
kubectl get pvc - Durum ve olaylar dâhil ayrıntılı bilgi almak için:
kubectl describe pv <pv-name>kubectl describe pvc <pvc-name>
PVs'lerin Bound olduğundan ve PVCs'lerin doğru PV'ye Bound durumuyla bağlandığından emin olun.
PV ve PVC'yi Anlama
Bir kullanıcı, 50GB kalıcı depolama gerektiren bir veritabanı dağıtmak istiyor. Hangi Kubernetes kaynağı, kullanıcının uygulamasının bu depolama için yaptığı isteği doğrudan temsil eder?
Kalıcı Depolama Özeti
Kubernetes'in uygulamalarınız için kalıcı depolamayı nasıl yönettiğini ele aldık:
- PersistentVolumes (PVs), gerçek depolamayı temsil eden küme kaynaklarıdır.
- PersistentVolumeClaims (PVCs), kullanıcıların depolama istekleridir.
- Kubernetes, gereksinimlere göre PVCs'leri uygun PVs'lere bağlar.
- Erişim Kipleri, depolamanın nasıl kullanılabileceğini tanımlar (RWO, ROX, RWX).
- StorageClass, PV'lerin dinamik olarak sağlanmasını mümkün kılar ve kurulumu otomatikleştirir.
Bu sistem, Pod'lar gelip gitse bile uygulama verilerinizin varlığını sürdürmesini sağlayarak durum bilgisi taşıyan uygulamalar için güvenilirlik sunar.
Sıkça Sorulan Sorular
“Kalıcı Birimler ve Talepler” dersi ücretsiz mi?
Evet — “Kalıcı Birimler ve Talepler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
“Kalıcı Birimler ve Talepler” dersinde ne öğreneceğim?
Persistent Volumes ve Persistent Volume Claims kullanarak Pod'lara kalıcı depolama sağlamayı anlayın. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Kalıcı Birimler ve Talepler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?
Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Yapılandırma için ConfigMaps
- Hassas Veriler için Gizli Bilgiler
- Kalıcı Birimler ve Talepler
- StorageClasses ve Dinamik Sağlama