Kubernetes

1st Apr 2026

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:

  • apiVersion
  • kind
  • metadata
  • spec

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:

  • Volume
  • PersistentVolume (PV)
  • PersistentVolumeClaim (PVC)
  • StorageClass
  • StatefulSet

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 StorageClass a 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é

Previous Post

Kubernetes