Junior
Deployment yaparken herhangi bir durum korunuyor mu?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kubernetes'ta bir Deployment dağıtımı yaparken, durum kendi içinde Deployment kontrolörü tarafından saklanmaz. Deployment, bir ReplicaSet'i yönetir ve bu da Pod'ları yönetir. Pod'lar doğası gereği geçicidir ve yeniden başlatılabilir veya silinebilir.
Deployment ile dağıtılan uygulamalar için durumu koruma genellikle diğer mekanizmalar kullanılarak sağlanır:
- Persistent Volumes (PV) ve Persistent Volume Claims (PVC): Pod'ların silinmesi veya yeniden başlatılmasından sonra bile erişilebilir kalması gereken verileri depolamak için kullanılır. PV depolama sağlar, PVC ise talep eder.
- ConfigMaps ve Secrets: Konfigürasyon verilerini ve hassas bilgileri (şifreler, anahtarlar) konteyner imajından ayırmak için kullanılır.
- StatefulSets: Durumlu uygulamaları yönetmek için özel olarak tasarlanmış bir denetleyicidir. StatefulSets, her Pod için kararlı ağ tanımlaması ve kalıcı depolama sağlar ve düzenli dağıtım ve ölçeklendirme garantiler.
Bir Pod manifestosunda PVC talebine örnek:
# PVC kullanan bir Pod'un tanımı
apiVersion: v1
kind: Pod
metadata:
name: durumlu-uygulamam
spec:
containers:
- name: benim-konteynerim
image: benim-imajım
volumeMounts:
- name: veri-hacmi
mountPath: /veri
volumes:
- name: veri-hacmi
persistentVolumeClaim:
claimName: pvc-adi
StatefulSet tanımı örneği:
# StatefulSet tanımı
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: benim-statefulset'im
spec:
serviceName: "benim-servisim"
replicas: 3
selector:
matchLabels:
app: durumlu-uygulamam
template:
metadata:
labels:
app: durumlu-uygulamam
spec:
containers:
- name: benim-konteynerim
image: benim-imajım
volumeMounts:
- name: benim-hacim
mountPath: /veri
volumeClaimTemplates:
- metadata:
name: benim-hacim
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
Yani, Deployment kendisi durumu saklamaz. Görevi, yeniden başlatmalar arasında bireysel kimlik veya durumu korumadan gereken sayıda Pod replikasını sağlamaktır. Durumlu uygulamalar için StatefulSets, PV/PVC, ConfigMaps ve Secrets kullanılır.