Skip to content

Project made for "Cloud Technologies" course at University, IV semester. Kubernetes+React+Nginx+Mongo+Redis

Notifications You must be signed in to change notification settings

michalbidzinski1/Kubernetes-React-Nginx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Przed uruchomieniem należy zainstalować ingress-nginx-controller.

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.2.0/deploy/static/provider/cloud/deploy.yaml

Wersja produkcyjna

Aby uruchomić wersje produkcyjną należy: Przejść do folderu frontend (cd frontend).

Zbudować obraz dockerowy frontendu ( docker build - t mkl1337/kubernetes-frontend:prod-1.0 .)

Przejść do folderu backend (cd backend).

Zbudować obraz dockerowy backendu ( docker build - t mkl1337/kubernetes-backend:prod-1.0 . )

Następnie w głównym folderze należy wywołać komendy:

kubectl create namespace production

kubectl apply -f ./production/backend/
kubectl apply -f ./production/frontend/
kubectl apply -f ./production/mongo/
kubectl apply -f ./production/redis/
kubectl apply -f ./production/ingress/

Aplikacja dostępna będzie pod:

http://localhost:80/production/

Aby usunąć wersje produkcyjna należy wykonać dwie komeny: kubectl delete namespace production kubectl delete persistentvolume mongo-pv-prod

Wersja dla developmentu

Aby uruchomić wersje dla developmentu należy: Przejść do folderu frontend (cd frontend).

Zbudować obraz dockerowy frontendu ( docker build - t mkl1337/kubernetes-frontend:dev-1.0 .)

Przejść do folderu backend (cd backend).

Zbudować obraz dockerowy backendu ( docker build - t mkl1337/kubernetes-backend:dev-1.0 . )

Następnie w głównym folderze należy wywołać komendy:

kubectl create namespace development

kubectl apply -f ./development/backend/
kubectl apply -f ./development/frontend/
kubectl apply -f ./development/mongo/
kubectl apply -f ./development/redis/
kubectl apply -f ./development/ingress/

Aplikacja dostępna pod:

http://localhost:80/development/

Aby usunąć wersje development należy wykonać dwie komendy: kubectl delete namespace development kubectl delete persistentvolume mongo-pv-dev

Kubernetes

Aplikacja działa jednocześnie i niezaleznie w namespace produkcyjnym i developmentu. Frontend posiada tylko jedna replike, gdyż aplikacja nie wykonuje żadnych skomplikowanych czynności, które znacznie zwiększałyby obciążenie. Backend posiada 2 repliki. W razie errorów jednej repliki, druga może kontynuować działanie. Mongo i Redis posiadają 1 replikę. Baza Mongo zapewnia trwałość danych dzięki PersistenVolumeClaim, który używa zasoby zarezerwowane przez PersistenVolume (storage: 20Mi).

Funkcjonalość

Aplikacja ogranicza się do prostej funkcjonalnośći jaką jest dodawanie i usuwanie notatek. Dodawać i usuwać dane można zarówno z mongo i redis. Dane są przechowywane oddzielnie, nie znikają po odświeżeniu strony.

About

Project made for "Cloud Technologies" course at University, IV semester. Kubernetes+React+Nginx+Mongo+Redis

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages