Sobes.tech
Junior

Deploymentni amalga oshirayotganda, uning holati saqlanadimi?

sobes.tech AI

AIdan javob

Kubernetesda Deploymentni joylashtirishda, holat o'z ichida Deployment nazoratchisi tomonidan saqlanmaydi. Deployment, o'z navbatida, Podlarni boshqaradigan ReplicaSetni boshqaradi. Podlar tabiatiga ko'ra efemeryik va ular qayta ishga tushirilishi yoki o'chirilishi mumkin.

Deployment bilan joylashtirilgan ilovalar uchun holatni saqlash odatda boshqa mexanizmlar yordamida amalga oshiriladi:

  • Persistent Volumes (PV) va Persistent Volume Claims (PVC): Podlarni o'chirish yoki qayta ishga tushirishdan keyin ham kirish mumkin bo'lishi uchun ma'lumotlarni saqlash uchun ishlatiladi. PV saqlashni ta'minlaydi, PVC esa uni talab qiladi.
  • ConfigMaps va Secrets: Konfiguratsiya ma'lumotlari va sezgir ma'lumotlarni (parollar, kalitlar) konteyner tasviridan ajratib saqlash uchun ishlatiladi.
  • StatefulSets: Holatli ilovalarni boshqarish uchun maxsus ishlab chiqilgan nazoratchi. StatefulSets har bir Pod uchun barqaror tarmoq identifikatsiyasi va barqaror saqlashni ta'minlaydi, shuningdek, tartibli joylashtirish va kengaytirishni kafolatlaydi.

Pod manifestosida PVC talabining misoli:

# PVC ishlatadigan Pod ta'rifi
apiVersion: v1
kind: Pod
metadata:
  name: holatli-ilova
spec:
  containers:
  - name: mening-kontaynerim
    image: mening-rasmim
    volumeMounts:
    - name: ma'lumot-hajmi
      mountPath: /ma'lumotlar
  volumes:
  - name: ma'lumot-hajmi
    persistentVolumeClaim:
      claimName: pvc-mening

StatefulSet ta'rifi misoli:

# StatefulSet ta'rifi
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mening-statefulset
spec:
  serviceName: "mening-xizmatim"
  replicas: 3
  selector:
    matchLabels:
      app: mening-holatli-ilova
  template:
    metadata:
      labels:
        app: mening-holatli-ilova
    spec:
      containers:
      - name: mening-kontayner
        image: mening-rasmim
        volumeMounts:
        - name: mening-hajm
          mountPath: /ma'lumotlar
  volumeClaimTemplates:
  - metadata:
      name: mening-hajm
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi

Shunday qilib, Deployment o'zi holatni saqlamaydi. Uning vazifasi, qayta ishga tushirishlar orasida ularning shaxsiyatlari yoki holatini saqlamasdan, kerakli miqdordagi Pod replikalarini ta'minlashdir. Holatli ilovalar uchun StatefulSets, PV/PVC, ConfigMaps va Secrets ishlatiladi.