Sobes.tech
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.