zkt25/z2/README.md

89 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# **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.