.. | ||
mongo-configmap.yaml | ||
mongo-express-deployment.yaml | ||
mongo-express-service.yaml | ||
mongo-secret.yaml | ||
mongo-service.yaml | ||
mongo-stateful-set.yaml | ||
namespace.yaml | ||
prepare-app.sh | ||
pv.yaml | ||
README.md | ||
remove-app.sh |
Základy klaudových technológií - Skúška
Ondrej Ladomirják
Funkcionalita aplikácie
Táto aplikácia sa skladá z dvoch kontajnerov mongodb a mongo-express a slúži na správu NoSQL databázy MongoDB. Keďže práca s databázou cez príkazový riadok nie je veľmi "user-friendly", tak súčasťou je taktiež webové rozhranie pre správu databázy Mongo-Express, v ktorom možno vytvárať nové databázy, kolekcie, a pridávať do novovytvorených kolekcií potrebné záznamy.
Opis odovzdaných súborov
.yaml
- Súbory vo formáte YAML slúžiace pre vytvorenie všetkých potrebných Kubernetes objektov..sh
- Shall script súbory, ktoré slúžia na prípravu (spustenie) a vymazanie aplikácie.
Návod ako si pozrieť aplikáciu na webovom prehliadači
- Všetko potrebné na prípravu a spustenie aplikácie je možné vykonať príkazom
prepare-app.sh
, ktorým nasadíme aplikáciu na verejný klaud Azure. - Po nasedení aplikácie je potrebné zadať príkaz
kubectl get service -n z2 mongo-express-service
kde stĺpec EXTERNAL-IP zobrazuje IP adresu, na ktorej aktuálne beží aplikácia. - EXTERNAL-IP je potrebné vložiť do vyhľadávania prehliadača spolu s portom 8081 v tvare ->
EXTERNAL-IP:8081
.
Opis použitého klaudu a služieb klaudu
- Na zverejnenie aplikácie bol použitý verejný klaud Azure, ktorý ponúka rôzne služby ako napríklad spravovanie, vývoj či hosting webových aplikácií online. Pre študentov ponúka "vstupný bonus" v podobe 100-eurového kreditu, čím ponúka možnosť využívať služby istý čas zdarma.
- Využitá bola služba AKS (Azure Kubernetes Service), pomocou ktorej bol zverejnený kubernetes kluster.
Opis kubernetes objektov
- Deployment: použitý pre vytvorenie mongo-express a mongodb PODu. Staraju sa o beh aplikácií.
mongo-deployment.yaml
`` - Service: použitý pre vytvorenie spojenia medzi PODmi.
- Secret: udržiava citlivé informácie. V našom prípade meno a heslo.
- Namespace: slúži pre lepšie usporiadanie aplikácii, s ktorými pracujeme. Bez využitia menných priestorov by sa všetky aplikácie a objekty nachádzali v defaultnom mennom priestore. V jednom mennom priestore by sa mali nachádzať aplikácie, ktoré spolu komunikujú.
- Statefulset: služi na manažovanie aplikácií, ktoré si potrebujú udržať svoj stav (stateful applications).
- PersistentVolume: typ objektu, ktorý určuje miesto kde je možné uložiť dáta.
Použité systémy, ktoré vyžadujú skripty prepare-app.sh a remove-app.sh
- Docker v20.10.14
- Kubernetes v1.22.5
- azure-cli v2.36.0
- kubectl v1.20.0