Sobes.tech
Junior

Deployment zamanı hər hansı bir vəziyyət saxlanılırmı?

sobes.tech Süni İntellekt

AI-dan cavab

Kubernetes-də Deployment yerləşdirərkən, vəziyyət öz-özlüyündə Deployment nəzarətçisi daxilində saxlanılmır. Deployment, bir ReplicaSet-i idarə edir və bu da öz növbəsində Pod-ləri idarə edir. Pod-lər təbiətinə görə efemerdir və yenidən başlatıla və ya silinə bilər.

Deployment ilə yerləşdirilən tətbiqlər üçün vəziyyətin saxlanması adətən digər mexanizmlər vasitəsilə həyata keçirilir:

  • Persistent Volumes (PV) və Persistent Volume Claims (PVC): Pod-ların silinməsi və ya yenidən başlatılmasından sonra da əlçatan qalması üçün məlumatların saxlanması üçün istifadə olunur. PV saxlama təmin edir və PVC onu tələb edir.
  • ConfigMaps və Secrets: Konfiqurasiya məlumatları və həssas məlumatların (şifrələr, açarlar) konteyner imicindən ayrılmış şəkildə saxlanması üçün istifadə olunur.
  • StatefulSets: Vəziyyətli tətbiqləri idarə etmək üçün xüsusi hazırlanmış nəzarətçidir. StatefulSets hər Pod üçün sabit şəbəkə identifikasiyası və davamlı saxlama təmin edir və ardıcıl yerləşdirmə və miqyaslandırma zəmanət verir.

PVC tələbinin Pod manifestində nümunəsi:

# PVC istifadə edən Pod-un təyini
apiVersion: v1
kind: Pod
metadata:
  name: vəziyyətli-tətbiqim
spec:
  containers:
  - name: mənim-konteynerim
    image: mənim-imajım
    volumeMounts:
    - name: məlumat-həcmi
      mountPath: /məlumatlar
  volumes:
  - name: məlumat-həcmi
    persistentVolumeClaim:
      claimName: mənim-pvc

StatefulSet-in nümunə təyini:

# StatefulSet-in təyini
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mənim-statefulset
spec:
  serviceName: "mənim-xidməti"
  replicas: 3
  selector:
    matchLabels:
      app: mənim-vəziyyətli-tətbiqim
  template:
    metadata:
      labels:
        app: mənim-vəziyyətli-tətbiqim
    spec:
      containers:
      - name: mənim-konteynerim
        image: mənim-imajım
        volumeMounts:
        - name: mənim-həcmi
          mountPath: /məlumatlar
  volumeClaimTemplates:
  - metadata:
      name: mənim-həcmi
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi

Yekun olaraq, Deployment özü vəziyyəti saxlamır. Onun vəzifəsi, yenidən başlatmalar arasında onların şəxsiyyətini və ya vəziyyətini saxlamaq olmadan, lazım olan sayda Pod replikasını təmin etməkdir. Vəziyyətli tətbiqlər üçün StatefulSets, PV/PVC, ConfigMaps və Secrets istifadə olunur.