Kubernetes megismerése alkalmazásfejlesztői szemszögből

2021-2022 tavasz

Szoftver

Téma leírása

Feladat ismertetése

A Kubernetes egy ún. orkesztrátor, amely egy számítógépklaszteren futtat és menedzsel elosztott alkalmazásokat. A virtuális gép alapú üzemeltetéssel szemben (ahol a futtatandó rendszerek, komponensek saját virtuális gépeket kapnak) a Kubernetes konténereket futtat, ezáltal magasabb telepítési sűrűség érhető el. Kubernetes klaszterek akár pár tucat konténertől kezdve több ezer konténerből álló rendszerek kezelésére is képesek. Amikor szoftverfejlesztőként egy olyan alkalmazást készítünk, amely Kubernetesben fut, tisztában kell lennünk a Kubernetes képességeivel.

A feladat megismerni a Kubernetes világát és annak módjait, ahogyan alkalmazásokat Kubernetesbe telepíthetünk, kifejezetten kitérve a DevOps világra, a CI/CD integrálására és a monitoringra is. Ennek keretében egy egyszerű, saját készítésű, több, önállóan futtatható szolgáltatásból álló (pl. frontend, két backend, egy adatbázis) webes alkalmazást és függőségeit kell Kubernetes-kompatibilissé tenni, majd telepíteni.

Félév végére elérendő cél

Minimum követelmény (azaz a teljesítéshez feltétlenül szükséges)
- Kubernetes klaszter felállítása helyi gépen (Docker Desktop/Minikube)
- Kubernetes alap objektumainak megismerése (Pod, Deployment, StatefulSet, Service, Ingress, ConfigMap, Secret, PersistentVolume)
- Tetszőleges elosztott rendszer (akár saját, akár pl. Wordpress) telepítése kézzel, yaml leírók elkészítése (legalább 3 deployment/statefulset, 2 service, 2 ingress, 1 configmap, 2 persistentvolume)
- Ingress controller telepítése (NEM minikube addonként) és előbbi alkalmazás elérésének megoldása
- Szorgalmi időszak végéig személyesen bemutatott eredmény

Elvárt követelmény (ez szükséges a jó jegy eléréséhez)
- A telepített alkalmazás saját megvalósítás konténerizálva - minimalista webalkalmazás több szolgáltatásra bontva
- Helm chartok megismerése
- Saját alkalmazáshoz Helm chart készítése, amely a verzió frissítést megoldja
- HPA, PDB objektumok használata
- Forward authentikáció használata, belépéshez kötött szolgáltatás publikálása
- Naplógyűjtó rendszer (ELK, EFK) telepítése és elérésének biztosítása
- Publikusan elérhető cloud klaszter használata

A jeleshez ill. iMsc pontok megszerzéséhez szükséges
- Rendszeres beszámoló a munka menetéről és folyamatos, látható előrehaladás
- Monitoring rendszer telepítése és saját metrika bekötése (Prometheus operátor használatával)
- Canary telepítés kidolgozása akár service mesh használatával
- Hálózati szabályok beállítása NetworkPolicy használatával
- GitHub Actions CI pipeline telepíti publikus klaszterbe az alkalmazást

Jelentkezés

A témára való jelentkezés előtt egyeztessünk. Keress Teams-en vagy emailben, és kérlek, kezdd azzal, hogy miért ez a téma érdekel téged.

Feltételek

  • elosztott rendszerek alapvető ismerete

Maximális létszám: 2 fő