Új hozzászólás Aktív témák

  • Drizzt

    nagyúr

    válasz coco2 #19191 üzenetére

    Horizontálisról inkább nem beszélek, mert a gyakorlatban - főleg autoscaling-gel - nem használtam.

    Horizontális skálázásról viszont tudok valós tapasztalatból beszélni.
    "Azt mondja az elmélet, hogy röptében még node-okat kér az alkalmazás a szolgáltatótól. Tuti, azt megkaphatja. Nem mintha röptében telepíteni egy OS-t, be-config-olni, üzembe állítani két pillanat lenne, de pár perc alatt meg tudhat éppen történni." OS-t nem kell se telepíteni, se konfigolni. Kiindulási állapotban van 1 master és x worker node-od. Ezeken már fut az operációs rendszer. Az alkalmazások OCI szabványú containerek szoktak lenni, tehát igen gyors tud lenni az elindításuk, illetve többféle container runtime is el tudja indítani őket. Amikor definiálsz egy deploymentet, meg tudod adni, hogy mennyi replikát szeretnél futtatni az adott alkalmazáskor. Pl. azt mondod, hogy van egy alkalmazásod, amiből szeretnél 3 példányt futtatni és mindegyik egyenként 1 CPU-t és 1GB memóriát igényel. Ekkor a Kubernetes meg fogja nézni, hogy melyik node-okon van ilyen szabad erőforrás és oda fogja allokálni őket. Onnantól, hogy elindultak ezek a példányok, egy helyben maradnak. Ez a manuális horizontális skálázás. Menet közben megváltoztathatod a replika számot. Ha pl. 3-ról 4-re emeled, akkor elkezdi elindítani a negyedik containert. Amikor az feléled, akkor update-eli a routing-ot, hogy tudjon róla, hogy 4 helyen érhető el éppen az alkalmazás.
    Autoskálázás: mindenféle metrikák és threshold-ok alapján megmondhatod, ha több, vagy kevesebb replika tűnik szükségesnek. Gyakorlati tapasztalatom nincsen vele.
    "És biztos létezik olyan alkalmazás típus (mondjuk hang vagy video kodek, ahol egy csomag bejön, egy csomag kimegy, és teljesen előzetes történetmentes jellegű az alkalmazás üzemelése), amit lehet dinamikusan bővíteni, de a legtöbb eset nem olyan. Sőt, mondjuk az esetek 99%-a nem olyan. Vagy megfeledkeztem volna valamiről?"
    Igen. Az ilyen környezetben futtatható alkalmazásokat olyanra is kell tervezni. Fontos fogalmak: stateless application, cloud native, 12 factor app.
    Stateful alkalmazásokat is lehet futtatni, de általában azokat inkább érdemes valamilyen dedikált - nem kubernetes - környezetben futtatni.

    Szerintem teljesen felesleges technikai leírást nézni, mert nem fogod érteni elsőre. Ezt nem személyeskedésnek szánom, mindenkinek ezt mondanám elsőre.
    Sokkal jobb út végigcsinálni a [hivatalos tutorialt]. Eléggé gyorsan el fogsz tudni addig jutni, hogy kipróbál a manuális skálázást a gyakorlatban. Fel kell hozzá rakni egy Rancher desktopot, vagy egy minikube-ot a gépedre(tehát gyakorlatilag egy kubernetes clustert tudsz futtatni a saját gépeden). Egyébként részletes technikai leírásnak is remek kiindulópont a kubernetes.io.

Új hozzászólás Aktív témák

Hirdetés