kontenery w podzie nie współdzielą storage, każdy ma osobny wyizolowany system plików
wolumen może zostać utworzony w ramach poda i być współdzielony przez pody w nim się znajdujące
Volume
komponent poda definiowany wraz z definicją poda
kontener w celu użycia volume musi zostać on zamontowany
Volume Type
emptyDir pusty/tymczasowy katalog dla poda (usuwany wraz z podem, przeżywa restarty). Wszystkie kontenery znajdujące się w podzie mają dostęp do tego wolumenu.
hostPath mapowanie ścieżki/filesystemu przestrzeni nazw z node workera do poda
gitRepo (usuwany wraz z podem)
nfs Network File System share
Cloud Volume Types:
gcePersistentDisk
awsElastic-BlockStore
azureDisk, azureFile
Specyficzne typy (pozwalają zamontować pod wolumen zawartość obiektu konfigmapy lub secret):
persistentVolumeClaim
configMap służy do wstrzykiwania wartości key-value. Istnieją tylko w danym namespace -> dostępne są tylko dla podów, które są w tym samym namespace
secret służy do wstrzykiwania wrażliwych danych do poda.
Sekrety są dostarczane tylko do tych nodów, które mają pody korzystające z danego sekretu. * Sekrety trzymane są w tmpfs, nie są zapisywane na dysku.
Kiedy ostatni pod korzystający z sekretu zostanie usunięty, dany sekret również zostanie usunięty z noda z katalogu tmpfs.
Sekrety trzymane są tylko w danym namespace -> dostępne są tylko dla podów, które są w tym samym namespace
Storage Class
Sposób składowania danych na różnego typu nośnikach. Wykorzystywany przez Kubernetes API przy dynamicznym tworzeniu (Dynamic provisioning) wolumenu (PersistentVolume) aby dowiedzieć się jakiego typu Azure storage stworzyć. Może posiadać reclaimPolicy kontrolujący zachowanie zasobów Azure storage w sytuacji kiedy pod jest usuwany i PV nie jest dłużej potrzebny.
kubectl describe storageclass/managed-premium
Persistent Volume
Storage niezależny od noda czy też poda
jest zasobem w klastrze podobnie jak node
Sposób utworzenia przestrzeni na dane tworzoną przez administratora klastra używając konkrentej storage klasy, która definiuje implementację
Typy PV:
statyczny - tworzony przez administratora jako zasób
dynamiczny - tworzony przez PVC jeśli klaster nie posiada danego PV
Typy dostepu/montowania (może być użyty tylko jeden w danym czasie):
RWO (ReadWriteOnce) - dostępny tylko dla jednego poda
ROX (ReadOnlyMany) - dostępny do odczytu dla wielu podów
RWX (ReadWriteMany) - dostępny R/W dla wielu podów
Statusy:
Available
Bound
Released
Failed
Reclaim policy (mówi co zrobić z PVC kiedy jest released):
Retained
Recycled (deprecated)
Deteled
Persistent Volume Claim
Obiekt klastra podobny do poda. Pod konsumuje zasoby noda, zaś PVC konsumuje zasoby PV. Pod żąda dane zasoby od noda (CPU/RAM), PVC żąda odpowiedni rozmiar czy typ dostępu (może być zamontowany jako RWO/ROX/RWX)