May 9, 2025

Šta je Deployment? Šta je StatefulSet?

 Deployment je Kubernetes objekat koji upravlja stateless aplikacijama, tj. aplikacijama koje ne zavise od svog identiteta i ne čuvaju stanje lokalno.

Ukratko: Deployment = automatsko skaliranje i obnavljanje "običnih", zamjenjivih Podova.

🔧 Šta radi Deployment:

  • Pokreće željeni broj identičnih Podova

  • Osigurava da uvek ima tačno toliko aktivnih replika

  • Automatski pravi rolling update (postepeno ažuriranje verzije)

  • Vraća prethodnu verziju ako nešto krene po zlu


📄 Primer YAML fajla:


apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.21 ports: - containerPort: 80

Ovo pravi 3 identična Nginx Poda koji mogu da se zamene bilo kad.


🧱 Šta je StatefulSet?

StatefulSet je tip kontrolera za stateful aplikacije — one koje:

  • Trebaju stalni identitet (ime, IP adresu)

  • Imaju stalne podatke koji ne smeju da se izgube

  • Zahtevaju redosled pokretanja i gašenja

Ukratko: StatefulSet = koristiš kad ti treba stabilan, predvidiv red i podaci.


🧠 Ključne razlike naspram Deployments:

DeploymentStatefulSet
Imena PodovaNasumičnaFiksna (ime-0, ime-1...)
IP adreseMogu da se promeneOstaju stabilne
VolumeDeljeniSvaki Pod ima svoj volume
SkaliranjeBilo kojim redosledomU strogoj sekvenci
Primeri upotrebeWeb serveri, APIBaze, Kafka, Redis

📄 Primer YAML za StatefulSet:


apiVersion: apps/v1 kind: StatefulSet metadata: name: redis spec: serviceName: "redis" replicas: 3 selector: matchLabels: app: redis template: metadata: labels: app: redis spec: containers: - name: redis image: redis volumeMounts: - name: redis-data mountPath: /data volumeClaimTemplates: - metadata: name: redis-data spec: accessModes: ["ReadWriteOnce"] resources: requests: storage: 1Gi

Svaki Pod (redis-0, redis-1, redis-2) ima svoj lični disk (PVC) koji se ne briše automatski.


🗺️ Analogija:

  • Deployment = vojska identičnih robota, lako zamenjivih.

  • StatefulSet = red zaposlenih sa imenima, radnim stolom i ličnim fiokama.

No comments:

Post a Comment