Regisztráció és bejelentkezés

Kubernetes és Gardener AutoScaling funkciójának teljesítményanalízise

Napjainkban a vállalatok egyre jobban kihasználják a cloud adta lehetőségeket. Ha egy vállalat nem rendelkezik saját erőforrásokkal, akkor jobban megéri egy publikus cloud szolgáltatást igénybe venni, mint saját szervereket vásárolni, mivel így elég csak a ténylegesen szükséges erőforrásért fizetni és az üzemeltetést is a szolgáltató végzi helyettük. Ha rendelkezik szerverekkel, infrastruktúrával, akkor is alkalmazhatnak valamilyen, akár nyílt forráskódú, privát cloud megoldást, mivel a virtualizáció segítségével elrejti előlük a fizikai infrastruktúrát, így könnyítve meg a fejlesztést.

A Kubernetes egy Google által fejlesztett és 2014-től nyílt forráskódú konténer orkesztrációs platform. Segíti konténerizált alkalmazások fejlesztését, telepítését, skálázását, menedzselését, valamint ezen folyamatok automatizálását. Nagyon elterjedt platform, ami funkciói mellett annak is köszönhető,hogy a korábbi monolitikus architektúra helyett a komponensekre bontott alkalmazások fejlesztését támogatja. Ezáltal az alkalmazások skálázhatóbbá és robusztusabbá válnak, a komponenseik lecserélhetőek, újrahasznosíthatóak.

A Kubernetes rendszer egyik legkedvezőbb tulajdonsága az AutoScaling. Ez azt jelenti, hogy a terheléstől függően fel- vagy leskálázza az alkalmazást, vagyis több vagy kevesebb konténert indít és tart a rendszerben. Így az alkalmazást kiszolgáló erőforrás mennyisége a terheléstől függően dinamikusan változik.

Sok projekt foglalkozik azzal, hogy a Kubernetes rendszert kibővítse, új funkciókkal ruházza fel, vagy magát a telepítést és menedzselést segítse. A Gardener egy olyan rendszer, ami Kubernetes clusterek menedzselését és automatizált létrehozását valósítja meg, vagyis Kubernetes Clusters as a Service-t nyújt. A natív Kubernetes-zel való összehasonlításhoz azért választottuk a Gardenert, mert az általa létrehozott felhasználói clustereknek az architektúrája eltér a standard felépítéstől. A rendszer alapja a Seed Cluster, mely egy admin clusternek tekinthető, ami a felhasználóknak allokált clusterek (Shoot Cluster) kontroll síkját tartalmazza. A standard Kubernetes clusterben, a Shoot Clusterhez képest az a különbség, hogy a központi vezérlő elem a clusteren belül található. Munkánk során többek között azt vizsgáljuk, hogy ennek a Gardener-féle cluster felépítésnek milyen hatása van a Kubernetes nyújtotta funkciókra, különös tekintettel az AutoScalingre.

Dolgozatunkban bemutatott eredmények alapjai olyan mérések, melyek jól jellemzik egy valós rendszer terhelését különböző helyzetekben. A tesztek közben vizsgáljuk a Kubernetes AutoScaling gyorsaságát és robusztusságát. Ehhez kérés sorozatokat küldünk egy változtatható erőforrás igényű szervernek és közben monitorozzuk az érzékelhető késleltetésre gyakorolt hatását. Ezáltal meg tudjuk vizsgálni, hogy a Kubernetes clusterbe telepített alkalmazások, különböző terhelések mellett, milyen felhasználói élményt nyújtanak és ezt befolyásolja-e egy olyan architektúra-módosítás, mint amilyen a Gardener esetében történt.

szerzők

  • Nagy Ádám Zsolt
    Mérnök informatikus szak, alapképzés
    alapképzés (BA/BSc)
  • Fodor Balázs
    Mérnök informatikus szak, alapképzés
    alapképzés (BA/BSc)

konzulensek

  • Németh Balázs
    PhD hallgató, Távközlési és Médiainformatikai Tanszék
  • Dr. Sonkoly Balázs
    egyetemi adjunktus, Távközlési és Médiainformatikai Tanszék

helyezés

II. helyezett