May 9, 2025

Šta su Volume u Kubernetesu?

 Volume u Kubernetesu je mehanizam za čuvanje podataka koje kontejneri mogu da koriste, nezavisno od životnog veka kontejnera.

Ukratko: Volume omogućava deljenje i/ili očuvanje podataka između kontejnera ili između restarta.


❗Zašto je to važno?

  • Kada kontejner umre, sve što je bilo u njegovom fajl sistemu nestaje.

  • Volume omogućava:

    • trajno skladištenje podataka

    • deljenje fajlova između kontejnera u istom Podu

    • učitavanje konfiguracija i tajni (ConfigMap, Secret)

    • spajanje sa eksternim skladištima (npr. NFS, AWS EBS, GlusterFS, itd.)


🧩 Kako se koristi?

Volume se definiše na nivou Pod-a i povezuje sa kontejnerima pomoću volumeMounts.

📄 Primer:


apiVersion: v1 kind: Pod metadata: name: pod-sa-volumom spec: containers: - name: app image: nginx volumeMounts: - name: moj-vol mountPath: /usr/share/nginx/html volumes: - name: moj-vol emptyDir: {}

U ovom primeru:

  • Volume moj-vol je tipa emptyDir (prazan folder koji traje koliko i Pod)

  • Montiran je u /usr/share/nginx/html u kontejneru


📚 Tipovi volumena (neki od najčešćih):

TipOpis
emptyDirPrivremeni folder koji traje koliko i Pod
hostPathFajl ili folder sa host mašine
configMapVolume baziran na ConfigMap
secretVolume baziran na Secret
persistentVolumeClaim (PVC)Povezuje se sa trajnim skladištem (disk, NFS, cloud)
nfs, awsElasticBlockStore, gcePersistentDisk, csiEksterno skladište

🧠 Persistent Volume (PV) i PVC

Za dugotrajno skladištenje koristi se sistem:

  • PV (PersistentVolume) – apstrakcija fizičkog skladišta

  • PVC (PersistentVolumeClaim) – zahtev aplikacije za prostor

Pod ne koristi direktno PV, već pravi PVC koji se onda mapira na PV.


🗺️ Analogija:

Zamisli kontejner kao kamp-prikolica. Sve što je unutra nestaje kad je pomeriš. Volume je kao eksterni kontejner (šupa) ili hard disk koji možeš da priključiš i koristiš nezavisno od same prikolice.

No comments:

Post a Comment