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:
U ovom primeru:
-
Volume
moj-vol
je tipaemptyDir
(prazan folder koji traje koliko i Pod) -
Montiran je u
/usr/share/nginx/html
u kontejneru
📚 Tipovi volumena (neki od najčešćih):
Tip | Opis |
---|---|
emptyDir | Privremeni folder koji traje koliko i Pod |
hostPath | Fajl ili folder sa host mašine |
configMap | Volume baziran na ConfigMap |
secret | Volume baziran na Secret |
persistentVolumeClaim (PVC) | Povezuje se sa trajnim skladištem (disk, NFS, cloud) |
nfs , awsElasticBlockStore , gcePersistentDisk , csi | Eksterno 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.