# **Správa Používateľov - Kubernetes Aplikácia** ## **1. Podmienky na nasadenie a spustenie aplikácie** Aby ste mohli aplikáciu spustiť, musíte mať nainštalované a nakonfigurované: - **Linux (napr. WSL)** alebo iný terminálový prístup k súborom - **Docker Desktop s povoleným Kubernetes** ([návod](https://docs.docker.com/desktop/kubernetes/)) - **kubectl** (súčasť Docker Desktop) - **Docker CLI** na build obrazu pre Flask aplikáciu ## **2. Opis aplikácie** Aplikácia poskytuje jednoduché webové rozhranie na správu používateľov. Používatelia sú uložení v databáze PostgreSQL a aplikácia ich dokáže pridávať alebo mazať cez jednoduché API a frontend napísaný vo Flasku. ## **3. Opis Kubernetes infraštruktúry** - Aplikácia beží v mennom priestore `userapp` - Flask aplikácia beží ako `Deployment` - PostgreSQL beží ako `StatefulSet` so zachovaním dát pomocou `PersistentVolume` - Komunikácia prebieha cez služby (`Service`) - Aplikácia je dostupná cez prehliadač na porte **30001** ## **4. Zoznam použitých kontajnerov** - **Flask (Python 3.9)** – webová aplikácia s REST API a HTML šablónou - **PostgreSQL (13)** – relačná databáza na ukladanie používateľov ## **5. Zoznam Kubernetes objektov** | Objekt | Typ | Popis | |---------------------|--------------------------|--------| | `userapp` | Namespace | Logický priestor pre všetky objekty | | `flask-app` | Deployment | Webová aplikácia | | `postgres` | StatefulSet | Databáza PostgreSQL | | `postgres-pv` | PersistentVolume | Trvalý disk na hoste (hostPath) | | `postgres-pvc` | PersistentVolumeClaim | Prepojenie PV s databázou | | `flask-service` | Service (NodePort) | Prístup na aplikáciu z prehliadača | | `postgres-service` | Service (ClusterIP) | Interné spojenie medzi Flask a DB | ## **6. Priebeh nasadenia aplikácie** ### **Príprava aplikácie (Namespace + databáza + tabuľka):** ```bash ./prepare-app.sh ``` ### **Spustenie webovej aplikácie:** ```bash ./start-app.sh ``` ### **Zastavenie aplikácie:** ```bash ./stop-app.sh ``` ## **7. Ako si pozrieť aplikáciu v prehliadači** Po spustení aplikácie otvorte v prehliadači: ```arduino http://localhost:30001 ``` ## **8. Príklad práce s aplikáciou** ### **Pridanie používateľa:** 1. Otvorte aplikáciu v prehliadači 2. Zadajte meno do textového poľa 3. Kliknite na tlačidlo **"Pridať"** 4. Používateľ sa uloží do databázy a zobrazí v zozname ### **Odstránenie používateľa:** 1. Kliknite na tlačidlo **"Odstrániť"** pri konkrétnom používateľovi 2. Používateľ sa odstráni z databázy ## **9. Dôležité poznámky** - PostgreSQL uchováva dáta v `hostPath` priečinku `/data/postgres` - Flask obraz je buildovaný **lokálne**, preto v `deployment.yaml` je: ```yaml imagePullPolicy: Never ``` - Aplikácia **neobsahuje pgAdmin**, ale všetko funguje bez neho ## **10. Overenie funkčnosti** Over stav podov: ```bash kubectl get pods -n userapp ``` Očakávaný výstup: ``` postgres-0 Running flask-app-xxx Running ``` Po úspešnom spustení je aplikácia pripravená na používanie a odovzdanie.