Hihetetlen népszerűségre tett szert a konténer-alapú alkalmazásfejlesztés az elmúlt években. Gyakorlatilag mindenkinek lesz vele dolga, függetlenül attól, hogy rendszerüzemeltető vagy hoster. Amennyiben valaki fejlesztő, erősen ajánlott a technológia ismerete.  „A konténerizált modern alkalmazásfejlesztés – Kubernetes on Azure” címmel tartott a Kvazar.cloud webináriumot, amelyben a Kubernetes, más néven K8s—val kapcsolatban osztotta meg egymással tapasztalatait több szakértő.

Azért is hiánypótló a YouTube-on elérhető videó, mert az Azure Kubernetes service first class citizen az Azure platformon a legnagyobb növekedési mutatókkal ez a compute szolgáltatás rendelkezik. A webináriumból többek között az is kiderül, hogy egy alkalmazást miképpen érdemes felköltöztetni a felhőbe. Ahogy az is megtudható, hogy melyek azok a területek, amelyeken nem érdemes konténerizációval foglalkozni.

Cikkünkben Juhász I. Márton –  kubernetes evangelist, a Datatronic Kft. stratégiai és innovációs vezetője – szakmai tapasztalatait osztjuk meg.  A Kubernetes és a cloud native technológiák üzleti- és stratégiai kialakításáért és implementálásáért, valamint az operatív támogatásért felelős szakember előadásából a rendszer előnyeiről tudhatunk meg bővebb információkat. Emellett betekintést nyerhetünk abba, hogy miként sajátítható el a Kubernetes szemléletmód.

Mi az a Kubernetes, más néven K8s?

A Kubernetes (gyakran hivatkozott jelölése: k8s) egy rendkívül komplex nyílt forráskódú konténer alapú orkesztrációs platform, amelynek segítségével automatizálható az alkalmazások telepítése, skálázása, illetve menedzselése. Eredendően a Google mérnökei kezdték el a Kubernetes fejlesztését. Jelenleg pedig a Cloud Native Computing Foundation (CNCF szervezet) gondozza. A Kubernetes számos konténeres megoldást használó infrastruktúrát támogat, köztük a Docker-t is. A Kubernetes elnevezés (görög eredetű szó) magyarul irányítót vagy kormányost jelent. Erre utal a logójában található hajókormány is.

A Kubernetes (k8s) működése összetett

A Kubernetes esetében szükségünk van egy kezelőfelületre, egy master node-ra és egy/vagy több agent vagy worker noad-ra, amelyekre telepíthetők a konténerizált alkalmazások. Emellett szükségünk van API szerverre, amelynek segítségével kommunikálni tudunk a felhasználókkal. A control plane segítségével pedig felügyelni tudjuk a Kubernetes klaszterünket. Amikor valaki saját Kubernetes klasztert épít, az összes komponenst képesnek kell lennie üzemeltetnie és monitoroznia is. Ez komplex, figyelembe véve azt, hogy valójában mi csak szeretnénk egy olyan kontroll-felületet kapni, ahol megmondhatjuk, hogy az adott alkalmazásunk miképpen működjön. A worker node-ok provizionálása (alkalmazás kiajánlás) az, ami egy fejlesztő számára igazán értékteremtő.

Az Azure Kubernetes Service (AKS) menedzselt compute szolgáltatásként kulcsrakészen adja teljesen ingyen ezt a kontroll-képességet. A Microsoft felel azért, hogy a működésért felelős szolgáltatások rendelkezésre álljanak. Ezek között szerepel, hogy intézzék a biztonsági frissítéseket, biztosítsák a skálázhatóságot, valamint az update-ek telepítését. Ezen fontos feladatok, amelyek átvállalásával lehetővé válik, hogy a fejlesztők arra koncentrálhassanak, ami igazán fontos a számukra.

De nemcsak ismerni kell, hanem szinte kötelező bevezetni a Kubernetes által biztosított technológiát. A konténeres alkalmazások telepítésének, méretezésének és kezelésének automatizálására használható a Kubernetes. Ez lényegében a konténeres infrastruktúra hatékonyabb kihasználására szolgáló rendszer. A Kubernetes sokkal hordozhatóbbá teszi az alkalmazásokat, ezért az IT könnyebben mozgathatja őket a különböző private és publikus felhők között. A Kubernetes nem más, mint a felhők új operációs rendszere (OS).

Ha valaki erre a formára áll át, az nemcsak a teljesítőképességét növeli, hanem az üzleti életben is sikeresebbé válhat. Hiszen, ha egy OS-en keresztül futnak a programok, akkor a mozgatás, a telepítés, etc., mindenki számára egyenlő feltételeket teremt.

“Kubernetes on Azure”, avagy hogyan helyezhető el a Microsoft Azure felhőszolgáltatásban a Kubernetes?

Egy modern Kubernetes cluster (magyarul klaszter és/vagy számítógépfürt) legfőbb jellemzői: Scaling – konténerek és kubernetes scaling isolation –, amely egy masszív skálázási lehetőséget biztosító recept. Scheduling – hogyan fusson a workload, azaz mennyi replikán, milyen típusú node-ok legyenek futtathatóak. Automatikus failower képesség – a frissítések publikálásnak módja, illetve a monitoring és a networking.

Emellett, hogy miképpen biztosítjuk azt, hogy az alkalmazás-komponensek egymástól függetlenül izolálva fussanak. Mindez csak néhány, az igazán fontos szempontok közül, amiket érdemes figyelembe venni, amikor konténer-orkesztrációs platformot keresünk, szem előtt tartva azt is, hogy a fejlesztésért és üzemeltetésért felelős csapatok megfelelően szabályozva, összhangban működjenek.

Ezek azok az esetek, amikor a Kubernetes egyszerűbbé és hatékonyabbá tudja tenni a működésünket.

Kubernetes konténerkezelés

A cégek hiába készülnek el gyorsan egy fejlesztéssel, valódi üzleti érték akkor születik, ha a megalkotott termékeket gyorsan kis egységekbe tudjuk szervezni, majd ezeket képesek vagyunk élesíteni, skálázni, frissíteni és üzemeltetni. Persze, ezekre a kihívásokra az IT már számtalan megoldást teremtett. Az első ilyen állomás a szoftverkomponensek konténerekbe szervezése volt, amelynek köszönhetően egységesíthetőek az egyes elemek, amelyek könnyen tárolhatóak, formálhatóak és mozgathatóak.

Egyre jobban nő a szoftverek és az alattuk felépített infrastruktúra komplexitása, és ugyan a konténerekbe szervezés sokat segít, újabb kihívásokat is jelent. Hiszen konténerek tömegeit kell gyorsan és biztonságosan kezelni – azaz az angol orchestration kifejezéssel élve – vezényelni.

Azt, hogy az adott konténer hova és hány példányba kerüljön, a konténerek tömegeit kezelő szoftver központi “karmesterként” irányítja. A megoldásokra ma már ugyan több eszköz létezik, ám egyik legnépszerűbb és legjobban támogatott multi cloud megoldás a Kubernetes.

Szemléletváltás – avagy a Kubernetes működése az Azure felhőben

Az első és legfontosabb, hogy általános szemléletváltás történjen, illetve mindenki megértse és átlássa, hogy át kell állni egy olyan rendszerre, ami jobban működik. Ez úgy kell elképzelni, hogy adott egy szoftverfejlesztés, egy ötlet és egy platform, valamint – ahogy a régiónkban, így nálunk is gyakorlat – van egy monolitikus architektúra (user interface-vel, app service-vel és data service-vel). Mindez tökéletesen működik és jól használható, azonban már elavult. Az új irányzat szerint ezt fel kell darabolni, ki kell bontani és át kell állni mikroszolgáltatásokra.

A Kubernetes architektúra minden vállalkozás számára egyforma versenyfeltételeket nyújt

Fontos kiemelni, hogy van olyan architektúra, ami erre nem alkalmas. Ám, ha egy új irányzatot és/vagy innovációt szeretnénk követni, akkor a mikroszolgáltatásokban kell gondolkodni. Vannak olyan website-ok például, ahol csak a főoldal és a szolgáltatások 1200 mikroszolgáltatásokból állnak. Ennek azok a legnagyobb előnyei, hogy ezek szét vannak darabolva – ellenben a monolitikus architektúrával –, és ha elhal az architektúra valamelyik része, akkor sem áll le a szolgáltatás.  Hiszen annak a többi része tökéletesen működik. Emellett nyilván gyorsabb a demózás, a fejlesztés, és maguk a javítási funkciók megfelelőek. Ha ez a megközelítés már megvan, akkor innen már csak egy lépés a konténerizáció. Ha mindezt egybe csomagoljuk, és magukat a konténereket összekapcsoljuk, majd ’feltesszük a hajóra’, akkor érünk el a megoldáshoz.

Ilyenkor a nagy kérdés az, hogy ezt saját On premise-be (azaz helyben telepített megoldások)  helyezzük vagy felhőbe. A Kubernetes technológia hozta el azt az áttörést, hogy nemcsak e két opció közül választhatunk, hanem létezik többféle konstrukció is.

Hogyan válasszunk? Megoldások és lehetőségek a Kubernetes technológiával

Felépíthetünk egy on premise Kubernetes technológiát, noha ez nem könnyű, hiszen komoly szaktudást igényel, hogy ez sikerüljön. Ebből adódóan létezik egy hibrid megoldás, amely kezd a legelterjedtebbé válni. Biztonsági szempontból ez igen előnyös, mert gyakori az az igény, hogy az adatok legyenek a saját gépen, maga a computing, a számítás és a performing pedig menjen fel a felhőbe, és majd mi összekötjük. Az is egy opció, hogy az egyik rendszer a másiknak a back up-ja. A hibrid megoldás egyik hátránya, hogy az on premise-t is és a cloud-ot is külön-külön karban kell tartanunk. Mégis ez a leginkább preferált azoknál a cégeknél, amelyek a Kubernetes technológia bevezetésén gondolkodnak.

A Kubernetes technológia felépítésének lehetőségei szinte határtalanok

A multi-cloud architektúra az egyik legnagyobb újítás. Ennek értelmében konténerizáltuk az alkalmazást és a k8s lehetővé teszi azt, hogy mozgathassuk a konténereket a különböző cloud architektúrákban. Lehet akár Microsoft Azure-on a fő rendszerünk, és az alegységeket az ügyfélnek a Kubernetes cloud-jában nyugodtan rendezgethetjük. Mindeközben könnyen monitorozhatjuk a rendszert, mi több, az ügyfélkör is bővíthető.

Létezik classic cloud architektúra, amikor minden fent van egy helyen és onnan kezelhető a Kubernetes rendszer. A Microsoft Azure Serverless Computing egy nyugati hullám, amely azért lesz sikeres a jövőben, mert egy növekvő vállalatnak nem mindig van lehetősége arra, hogy új szervereket vagy gépeket vásároljon. Ha például csak egy ötletünk van – legyen az egy új szoftver vagy applikáció –, akkor a csapatunknak megmutathatjuk a Kubernetesben az adott alkalmazást és utána már elég csak az erőforrásokkal játszani. Az a biztonság, amit jelenleg a Kubernetes nyújt, más nem tudja lehetővé tenni.

A Kubernetes architektúra és felhős klaszter komponensei

Elsősorban konténerek szükségesek az alkalmazások, illetve a szoftverek mozgatása, skálázhatósága és elhelyezése miatt. Könnyen ki lehet próbálni a Kubernetesben rejlő lehetőségeket. A k3s, a MiniKube, a DT Sloop vagy bármely Hosted provide Cluster tud orkesztrációs réteget nyújtani. Ám javasolt, hogy legyen egy menedzsment platform Azure AKS /AWS / GKE).

A PaaS (Platform as a Service) szükséges ahhoz, hogy egy jól működő klaszter (cluster, számítógépfürt) felépítsünk arra, amire használni szeretnénk. Ha ez megvan, már csak a fölötte lévő dolgokkal kell foglalkozni. Itt már érdemes olyan csapathoz fordulni, akik Kubernetes adminisztrációval foglalkoznak, és van erről szakképesítésük. A Linux Fundation-nak van egy vizsgája, amellyel, ha az adott cég rendelkezik, akkor a segítségünkre lehet. Fontos olyan céget megbízni, amelyik pontosan olyan klasztert építenek nekünk, ami igazán kell nekünk. Megrendelőként az a cél, hogy nekünk csak az alkalmazásra kelljen figyelni, a többi réteg létrehozását és kezelését jobb egy szakértői csapatra bízni.

Érdekel a Kvazar.cloud Kubernetes megoldása!

Welcome the KaaS – avagy hogyan működik a Kubernetes as a Service?

A Kubernetes as a Service (KaaS) egy megoldás a Kubernetes API-n keresztül történő (rugalmasabb) használatához, amelynek egyik implementációja (megvalósítása) a Microsoft Azure-ban az AKS (Azure Kubernetes Service).

Az AKS nem azonos a KaaS-sel, hanem a Microsoft megoldása a KaaS-re a Microsoft Azure-ben. Tehát a KaaS a specifikáció, amelyet különböző cégek megvalósítanak, ennek jegyében hozta létre a Microsoft az Azure felhőben az AKS-t.

Az Azure Kubernetes Service (AKS) egy ingyenes tárolószolgáltatás, amely leegyszerűsíti a Kubernetes üzembe helyezését, kezelését és folyamatait, valamint teljes körű felügyeletet biztosít Kubernetes-tárolók irányításához.

Hogy működik mindez az Azure-ban?

Lényeges kérdés, hogy melyik menedzsment platformot választjuk, ahogy az is, hogy odafigyeljünk az Objektum Tároló Technológiára vagy éppen a VM-ek futtatásához szükséges hypervisor rétegre. Fontos, hogy a rétegek összeálljanak és jól tudjanak működni. Ha a rendszer kész van, csak a Snapshot-okra és a Backup-okra kell figyelni.

Megjelenik a KUBETCL – klasszikus parancssoros eszköz –, a másik oldalon pedig a RANCHER, ami az UI felületet biztosító platform. A két felület nemcsak a programozóknak nagy segítség, hanem akár a menedzsmentnek is. Mindebből látható, hány ember dolgozik a feladatokon, mekkora az erőforrás kihasználtsága, valamint hogy mindez milyen verziószámmal megy. Ezzel lényegében megkapjuk a Kubernetes összes előnyét.

Tekintve, hogy kizárólag a virtuális gépekért és a hozzájuk kapcsolódó tárterületért, valamint a felhasznált hálózati erőforrásokért kell fizetnie, az Azure Container Service a legeredményesebb és leginkább költséghatékony tárolószolgáltatás a piacon.

Az Azure Kubernetes Service (AKS-) fürt architectúrájában egy alapkonfigurációt építünk ki, amely üzembe helyez egy Azure Kubernetes Service (AKS-) fürtöt. Ez a cikk a fürt biztonságára hálózatkezelésére, identitására, felügyeletére, illetve monitorozására vonatkozó javaslatokat tartalmaz a szervezet üzleti követelményei alapján.

A Kubernetes technológia előnyei 11 pontban

  • Magas szintű hozzáférhetőség
  • Megfelelő redundancia (adat- és számítási kapacitás)
  • Hálózati topológia
  • Automata helyreállítási mechanizmus
  • Rolling Update – Frissítés során nincs leállás
  • Skálázhatóság / Erőforrás elosztás – Horizontális és vertikális
  • Folyamatos fejlesztés és integráció – CI/CD
  • Minden egy helyről irányítható
  • Kalkulálható és optimalizált költségek
  • Egyenlő versenyfeltételeket teremt a cégeknek
  • Átlátható és könnyen kezelhető szolgáltatás

Kinek ajánlott a Kubernetes?

Elsősorban azoknak a cégeknek lehet kiváló a Kubernetes technológia, amelyeknél nehéz megjósolni a terhelés, az adatmennyiség és a forgalom mértékét. Emellett azoknak a vállalkozásoknak elengedhetetlen, ahol fontos az adatok feldolgozásának gyorsasága. Ilyenek például a fintech (Financial Technology) cégek, de valamennyi olyan vállalkozás, amelyik Microsoft felhő szolgáltatást, például Microsoft Azure-t használ. A Kubernetes az egész evolúciós folyamatot támogatja.  Az, aki csak később vág bele a Kubernetes technológia alkalmazásába, később lemarad.

A Kubernetes jövője – ki lesz a konténerizációs háború nyertese?

A konténer alapú rendszerek abszolút növekedése tapasztalható

Ahogy az ábra is mutatja, a self managed K8S 43%-al míg az AKS 48%-al növekedett a korábbi (2019, 2020) évekhez képest. 2021-ben várhatóan még nagyobb növekedés lesz. Magának az orkesztrációs technológiának a népszerűsége is nőtt. Gyakorlatilag konténer háború zajlott, hogy ki melyiket választja a különböző lehetőségek közül. Egyértelmű, hogy ezt a háborút 2016 közepe felé a Kubernetes nyerte meg. Ennek a konténerizációs technológiának 1 milliárd USD dollár volt jövedelme, amely 2022-ben 4,3 milliárd lesz.

A Kubernetes jövője: tendenciák

A Kubernetes erős a szoftverekcégeknél, a pénzügyi szektorban, az egészségügyben, a retail területen, illetve a telekommunikációban is elkezdett kibontakozni. Amíg a nyugat-európai országokban 10 cégből 7 – már szinte kötelezően – használja. Ám, ahogy közeledünk a kelet-európai térség felé, azt vesszük észre, hogy 10-ből 3 ismerkedik és használja. Itthon pedig az érzékelhető, hogy 10-ből egy cég ismerkedik a Kubernetes technológiával – mivel a magyar vállalkozások elsősorban piackövető magatartás mutatnak, ez a trend csak erősödni fog, és még jelentős növekedési potenciál van ezen a területen.

A 2009-ben alapított, 100%-ban magyar tulajdonú, budapesti vállalkozásunk, a Kvazar.cloud több száz viszonteladó partnerrel dolgozik együtt. Mi vagyunk a legnagyobb Microsoft felhőszolgáltatás-közvetítő partner Magyarországon. Hogy mi köze van egy Microsoft disztribútor cégnek a cloud native technológiához? Elsősorban az, hogy a hagyományos disztribúciós szerepkörből felhőszolgáltatás-közvetítővé (közvetett CSP disztribútor) léptünk elő.
Lépj kapcsolatba velünk!