Deployment¶
Pro deployment aplikace je využíváno Kubernetes. Byl pro nás vytvořen namespace cnat.
Adresa Kuberenes Dashboardu: https://dashboard.kube.zcu.cz/#/overview?namespace=cnat
Přístup nejspíš jenom pro uživatele správce deploymentu (anonymní já :D)
Prerekvizity¶
Konfigurační soubory pro deployment a service databáze, aplikace a frontendu jsou uloženy v repozitory
Frontend¶
V nginx configu pro frontend musí být vytvořeno přesměrování volání /api na backend server
Requesty na backend se posílají na base adresu /api - nastaveno ve složce frontend/src/ v souboru .env (pro deployment musí být nastaveno REACT_APP_DEV_ENV=false)
Dockerfile pro frontend
Backend¶
Před buildem docker image je potřeba spustit build aplikace přes maven příkazem mvn clean install
Dockerfile pro backend
Kroky pro deploy aplikace:¶
Build docker image¶
Nejdříve je potřeba sestavit docker image pro backend a frontend. Stačí spustit příkaz docker-compose up ve složce backend. Před buildem je ještě potřeba smazat lokální docker image nebo povýšit verzi v souboru backend/docker-compose.yml.
Následně image nahrát do docker hubu - příkaz docker push a název image, tj. schwobik/frontend-app:<verze> nebo schwobik/backend-app:<verze>. Verze musí odpovídat verzi uvedené v docker-compose.yaml ve složce backend.
Vytvoření konfiguračních souborů pro Kubernetes¶
Konfigurační soubory jsou uloženy v repozitáři. Pokud je potřeba nějaká změna, upravte patřičně soubor_backend/docker-compose.yml_ a pokračujte následujícím návodem, nebo soubory upravte ručně.
Soubory se vytvoří příkazem kompose convert , pokud je stažen kompose (https://kubernetes.io/docs/tasks/configure-pod-container/translate-compose-kubernetes/)
Soubor frontend-service.yaml je třeba ještě upravit, je třeba přidat řádku type: LoadBalancer do elementu specs, jinak by Service nebyla přístupná z venku.
Deployment¶
Dále stačí nahrát soubory do Kubernetes Clusteru.
Zálohování aplikace¶
Pro databázi je vytvořen v Kubernetes Physical Volume Claim (PVC) db-data, který zajišťuje uchování dat databáze i v případě ukončení či spadnutí Podu s databází.
Data z databáze jsou navíc periodicky zálohována na PVC db-data-backup na cestu /var/backups/ pomocí Cron Jobu, který je načasován na běh jednou týdně. K záloze je použit nástroj pg_dump.
Aktualizováno uživatelem Michal Schwob před téměř 3 roky(ů) · 12 revizí