89 lines
3.2 KiB
Markdown
89 lines
3.2 KiB
Markdown
# **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. |