Kapitola 1: Základy Kubernetes
Kubernetes je moderný nástroj na správu kontajnerizovaných aplikácií. Ide o klastrový operačný systém, ktorý zabezpečuje orchestráciu kontajnerov.
Kým Docker rieši beh kontajnerov, Kubernetes riadi celý klaster – teda kde a ako aplikácie bežia na viacerých strojoch.
Účel Kubernetes
- efektívne využitie zdrojov (CPU, RAM, disk, sieť)
- automatizácia nasadenia aplikácií
- škálovanie podľa záťaže
Kľúčové vlastnosti
- vysoká dostupnosť
- odolnosť voči výpadkom
- horizontálne a vertikálne škálovanie
- elasticita
Architektúra
Kubernetes klaster obsahuje:
- riadiace uzly (API server, scheduler, etcd)
- pracovné uzly (kubelet, kube-proxy)
Tieto komponenty spolu zabezpečujú chod celého systému.
Kapitola 2: Kubernetes objekty a aplikácie
Kubernetes používa objekty na definovanie stavu aplikácie.
Kubernetes objekt
Objekt:
- reprezentuje zdroj (napr. aplikáciu)
- definuje požadovaný stav
- Kubernetes zabezpečí jeho dodržanie
YAML konfigurácia
Každý objekt sa definuje pomocou YAML:
apiVersionkindmetadataspec
Základné objekty
Pod
- najmenšia jednotka
- obsahuje kontajnery
Deployment
- riadi pody
- umožňuje škálovanie
Service
- sprístupňuje aplikáciu
Typy:
- ClusterIP
- NodePort
- LoadBalancer
Ingress
- HTTP/HTTPS prístup
- mapovanie URL na služby
Kapitola 3: Ekosystém a životný cyklus
Životný cyklus aplikácie
- Zero day – návrh
- Day 1 – nasadenie
- Day 2 – prevádzka (update, škálovanie, zálohy)
Nástroje
Helm
- balíčkovací systém pre Kubernetes
- používa „charty“
Kompose
- prevod Docker Compose → Kubernetes
Operator
- automatizuje správu aplikácií
- rieši aj pokročilé operácie (backup, upgrade)
Ekosystém
- monitoring (Prometheus)
- CI/CD
- service mesh (Istio)
- autentifikácia (Keycloak)
Kapitola 4: Úložisko v Kubernetes
Táto kapitola rieši jednu z najdôležitejších oblastí – uchovanie dát.
Prečo riešiť úložisko
Aplikácie potrebujú dáta:
- konfigurácie
- databázy
- cache
Dôležité je, že stav musí byť oddelený od samotného kontajnera.
Úrovne správy úložiska
1. Úroveň aplikácie
- object storage (napr. MinIO)
- databázy (PostgreSQL, MariaDB)
2. Úroveň klastra
- lokálne disky
- distribuované FS (Ceph, Gluster)
- sieťové FS (NFS, SMB)
3. Úroveň Kubernetes
Kubernetes abstrahuje úložisko pomocou objektov:
VolumePersistentVolume (PV)PersistentVolumeClaim (PVC)StorageClassStatefulSet
PersistentVolume (PV)
- reprezentuje fyzické alebo virtuálne úložisko
- vytvára ho administrátor
- môže byť lokálne alebo sieťové (NFS, iSCSI, …)
PersistentVolumeClaim (PVC)
- požiadavka aplikácie na úložisko
- spája aplikáciu s konkrétnym PV
👉 Kubernetes automaticky prepojí PVC s vhodným PV
Dynamické vs. statické prideľovanie
Statické
- PV vytvára admin manuálne
Dynamické
- PVC si vyžiada úložisko automaticky
- využíva sa
StorageClassa provisioner
StatefulSet
Používa sa pre stavové aplikácie:
- databázy
- aplikácie s trvalými dátami
Rozdiel oproti Deploymentu:
- pracuje s úložiskom (PVC)
- zachováva identitu podov
Prečo je úložisko zložité
Manažment dát je jedna z najťažších úloh:
- migrácia dát
- zálohovanie
- uvoľňovanie kapacity
➡️ napríklad: uvoľniť 2 TB dát môže byť náročné