Mit jelent egy Kubernetes (K8S) klaszter menedzselése a gyakorlatban?

kubernetes-official-site-logo-screen-montreal-canada-march-open-source-container-orchestration-system-automating-177672924

Mi a Kubernetes?

Aki találkozott már K8S konténerekkel, bizonyára tudja, hogy minél nagyobb számban kell őket üzemeltetni, annál több adminisztrációs terhet kell elviselnie. Eközben olyan kérdések merülnek fel mint pl.:

  • Hogyan frissítsem új verzióra az alkalmazásaimat kiesés nélkül?
  • Probléma esetén hogyan görgethetem vissza egy régebbi verzióra?
  • Mi történik, ha az adott virtuális szerverem nem elérhető és szolgáltatás kiesést érzékelek?
  • Amikor az alsóbb rétegekben (szerver, operációs rendszer, virtuális szerver, diszk, hálózat) biztonsági frissítéseket/változtatásokat hajtok végre, hogyan érjem el ezt az azokon futó alkalmazásom leállása nélkül?
  • Az alkalmazásom átmenetileg magas terhelést kap (CPU, memória), hogyan adok plusz erőforrást annak?

A Kubernetes (K8S) a Google által fejlesztett nyílt forráskódú konténer orkesztrációs platform.

A Kubernetes platform szolgálatásai képesek arra, hogy a fenti kérdéseket egyszerre oldják meg. Automatizálhatóvá válik a K8S konténerek menedzselése, skálázása és telepítése is.

Megvalósítható a „rolling upgrade” és „rolling downgrade”, ami azt jelenti, hogy leállás nélkül frissíthetünk új verzióra egy konténert. Hiba esetén vissza is állhatunk egy régebbi verzióra.

Abban az esetben, ha egy virtuális szerverünk leáll, a Kubernetes képes észrevenni a hibát és egy elérhető szerverre tenni az alkalmazásunkat. Segítségével több replikát is fenntarthatunk ugyanabból az applikációból több szerveren egyidőben, így még minimális leállással sem kell számolnunk.

Mikor tervezett karbantartást végzünk, nagy biztonsággal és leállás nélkül helyezhetjük át a karbantartani kívánt szerverről a konténereinket egy ideiglenes szerverre.

Mikor alkalmazásaink nagyobb terhelést kapnak és több klienst kell kiszolgálnia átmenetileg, a Kubernetes horizontálisan képes skálázni konténereinket és egyenletesen osztja el a terhelést a rendelkezésre álló szervereken.

Mit nevezünk Vanilla Kubernetesnek?

A Vanilla Kubernetes vagy nyílt forráskódú Kubernetes alatt azt a platformot értjük, amiben csak a főbb/alapvető komponensek találhatóak meg: Controll Plane, etcd, api-server, scheduler, controller manager, kube-proxy, container runtime (pl. Docker).

Miért jobb a menedzselt Kubernetes?

Sikerült elindítanom az első klaszterem, de… saját Kubernetes klaszter üzemeltetésekor felmerülhet több kínos kérdés is:
  • Egy adott konténer a klaszter bármely szerverére átkerülhet, hogy magas rendelkezésre állást biztosítson. Hogyan tudok elosztott háttértárat biztosítani az alkalmazásaimnak?
  • Hogyan teszem elérhetővé az alkalmazásom a külvilág számára?
  • Hogyan nyerem ki a logokat egy központosított, jól vizualizált környezetbe?
  • Mi történik, ha horizontálisan skálázom az applikációmat, de a rendelkezésre álló erőforrásokból kifogy a klaszter?
  • Hogyan automatizálhatom a munkafolyamataim? Konténer image készítés, feltöltés, verziókezelés, deploy?
  • Hogyan újítom meg a webes alkalmazásiam tanúsítványait automatizáltan?
  • Vizuális típus vagyok, hogyan láthatom az erőforrásaim CLI használata helyett?
  • Hogyan frissítem a klaszterem verzióját? 3 havonta kerülnek ki új K8S verziók.
  • A cégek sok esetben tervezik a Kubernetes használatát számos előnye miatt, de nincs meg az erőforrásuk, hogy saját klasztert tartsanak fenn/ építsenek ki.

    Kevés tapasztalattal indulva sok esetben nem várt/bonyolult hibajelenségek lépnek fel az üzemeltetés során. Ezen hibák okának megtalálása napokat, heteket vehet igénybe, és a különböző Kubernetes Guide-ok kutatása sok értékes időt vesz el az effektív munkavégzésből. Mit tehetünk, ha ezeket a csapdákat ki szeretnénk kerülni?

    Menedzselt K8S esetén az üzemeltetés terhe lekerül az ügyfél válláról. Megmutatjuk, hogy mi a Datatronic Kubernetes szolgáltatásával ezt hogyan érjük el:

    • Kubernetes üzemeltetéskor a Rancher és az RKE2 segítségével támogatjuk ügyfeleinket.
    • Elosztott háttértár megoldásunkkal és StorageClass segítségével a konténereink képesek bármely szerveren futni, amely a klaszter része, mégis konzisztens és perzisztens az adattárolás.
    • A publikus elérést alapértelmezetten biztosítjuk a fejlesztők számára a Rancher webfelületén és kubectl segítségével is. A klaszteren futó alkalmazásokat Nginx Ingress controlller és külső LoadBalancer segítségével éri el a külvilág.
    • Központi helyen gyűjtjük és tekinthetjük meg az alkalmazásból érkező logokat, Kibana segítségével vizualizálva ezeket.
    • Előfordulhat, hogy a horizontális skálázás esetén a klaszter szerverei is elérik kapacitásuk végét, ekkor új szervereket is képesek vagyunk a klaszterhez adni, mely kiterjeszti a kiszolgálható kliensek számát.
    • A Datatronic csapata szakmai tanácsadás keretében támogatja a fejlesztőket az automatizálásban, pl. konténer image készítés, CICD pipeline tervezése és implementálása.
    • Webes alkalmazások tanúsítványait a klaszterben található cert-manager segítségével könnyedén újíthatunk meg. Automatizáltan működő folyamat, így még kevesebb az adminisztráció.
    • A Datatronic a Rancher felületén keresztül képes vizualizációt nyújtani a klaszterről és annak erőforrásairól. A Rancher képes több felhasználó kezelésére, integrálhatóak más felhőszolgáltató klaszterei is. Az ott található erőforrásokat is menedzselhetjük a bárhonnan elérhető webes felhasználói felület segítségével.
    • A Datatronic gondoskodik, hogy naprakész rendszert biztosítson mindenkinek. A klaszter frissítésnek feladata lekerül az ügyfél teendőinek listájáról.
    Amennyiben Ön is szeretné hatékonyabb, magasabb rendelkezésre állású felhő platformban működtetni alkalmazásait, válassza szolgáltatásaink közül a Datatronic Microservice Cluster (DMC)-t!