Melyik konténerhangszerelés a legjobb az Ön számára?

A konténeres alkalmazások futtatásakor számos lehetőség áll az információtechnológiai (IT) csapatok rendelkezésére, amelyek a műszaki szakértelem minden szintjét megcélozzák.

Nehéz lehet kiválasztani egyet, mivel a választás után valószínűleg nem fog egyhamar áttérni másik lehetőségre.

Ez a bejegyzés két fontos lehetőséget állít szembe: Amazon Elastic Container Service (ECS) és Kubernetes.

Mindkettő alkalmas platform a konténer-hangszerelési és mikroszolgáltatás-kezelési tartományokban. Közvetlenül a továbblépés előtt pedig a konténereken végzett frissítés nem árt. A tárolók népszerűvé váltak a kód fejlesztésének, promóciójának és telepítésének megkönnyítése érdekében számos környezetben. Ezek az alkalmazási rétegek absztrakciói, amelyek a szükséges függőségekkel, könyvtárakkal és környezeti beállításokkal kódoló kódot futtatható csomagba csomagolják.

Míg a konténerek használatának fő célja a kódtelepítési folyamat egyszerűsítése, több ezer tárolók kezelése egyre nagyobb kihívást jelent. Egy másik mechanizmusra van szükség a rendkívül megbízható telepítések megvalósításához, az alkalmazások terhelés szerinti méretezéséhez, az egészségtelen konténerek újakra cseréléséhez, a terheléselosztáshoz és a portok feltárásához.

Itt jön a segítség a konténer hangszerelése. Ettől eltekintve szükség van eszközökre a konténerek üzemeltetéséhez és a teljes infrastruktúra kezeléséhez. Számos eszköz áll rendelkezésre a probléma megoldására, de szűkítsük le a hangsúlyt néhányra.

Ez a darab az ECS-t és a Kubernetes-t hasonlítja össze, kiemelve mindegyik előnyeit, és egy útmutatást ad a projekt alapján a megfelelő kiválasztásához.

Mi az az Amazon ECS?

Az Amazon ECS egy konténer-hangszerelési szolgáltatás, amely egyszerűsíti a konténeres alkalmazások telepítését, kezelését és méretezését. Alapvetően Ön határozza meg az alkalmazást és a szükséges erőforrásokat. Ezután az Amazon ECS elindítja, figyeli és skálázza az alkalmazást a számítási lehetőségek között, miközben lehetővé teszi az egyéb szükséges AWS-szolgáltatások integrálását. Például ellenőrizheti az állapotot, és programozottan módosíthatja a fürtöket.

Az ECS lehetővé teszi az alkalmazások üzembe helyezését kiszolgálók csoportján, úgynevezett fürtökön keresztül, feladatdefiníciók és alkalmazásprogram-interfész (API) hívások segítségével.

Olvassa el még: Milyen AWS EC2 példányokat érdemes használni?

Az Amazon ECS előnyei

  • Hagyományos ECS – Ezt a verziót 2015-ben adták ki, és az Amazon EC2 hajtja, hogy a Dockers konténereket könnyen futtassa a felhőben. A hagyományos ECS lehetővé teszi az EC2 opciók mögöttes ellenőrzését, ami rugalmasságot tesz lehetővé. Ez azt jelenti, hogy kiválasztja a tárolóján futtatni kívánt példánytípusokat. A modell további AWS-szolgáltatásokhoz is kapcsolódik, amelyek segítségével figyelheti és naplózhatja az EC2-példányokon végzett tevékenységeket.
  • Fargate ECS – 2017-ben jelent meg a konténerek futtatására anélkül, hogy az alapul szolgáló EC2 számítási opciókat kellene kezelni. A Fargate más megközelítést alkalmaz a szükséges CPU és memória kiszámításával. Ha a munkaterheléseket gyorsan szeretné elindítani, ez lehet a legjobb megoldás, mivel nem kell aggódnia a mögöttes számítási lehetőségek miatt.
  • Egyszerűsített alkalmazásarchitektúrák – Az ECS jó lehetőség a kevés mikroszolgáltatással (kevés külső függőséggel vagy néhány mozgó alkatrészsel rendelkező) önállóan működő alkalmazásokhoz.
  • Könnyű megfigyelés és naplózás – Könnyedén integrálhatja az ECS-t az AWS naplózó és felügyeleti eszközökkel, mint például a CloudWatch. Nem kell konfigurálnia a láthatóságot a konténer munkaterheléseibe, így időt takaríthat meg.
  • Könnyű tanulási görbe – Az ECS könnyen megtanulható. A Hosted Kubernetes egyre nagyobb népszerűségnek örvend, mint a hagyományos modellek, például a KOPS ízek és a Kubeadm.
  • Szerver nélküli infrastruktúra – Az ECS lehetővé teszi a konténerek futtatását virtuális gépek kezelése nélkül; konténereket telepít, miközben mentes az emberi beavatkozástól.
  • Beépített biztonság – Alapértelmezés szerint az Amazon ECS védett, és a biztonsági intézkedéseket egy elszigetelt virtuális magánfelhő-hálózati mechanizmuson keresztül lépcsőzetesen hajtja végre.
  •   Szöveg görbítése a PowerPointban

    Az ECS korlátai

  • Korlátozott tárhely – A külső tárhely kizárólag az Amazonra korlátozódik, egészen az Amazon EBS-ig.
  • Érvényesítési korlátozások – Az ECS egy Amazon-alapú termék, ezért nem érhető el az Amazonon kívüli nyilvános telepítésekhez.
  • Szállító zárolása – az ECS elfogult; csak a létrehozott konténereit tudja kezelni.
  • Az ECS-kód nem elérhető – Az ECS-kód nagy része nem elérhető nyilvánosan. Az olyan eszközök, mint az AWS Blox (egyéni ütemezők építésének keretrendszere), a kódbázisuk nagyon kis része nyílt forráskódú.
  • Mi az a Kubernetes?

    A Kubernetes, más néven K8s, egy nyílt forráskódú szoftver a konténeres alkalmazások telepítésének, méretezésének és adminisztrációjának automatizálására.

    A Google éles munkaterheléseinek futtatásában szerzett 15 éves tapasztalatát kihasználva (a legjobb ötletek és a közösségi gyakorlatok ötvözésével) a K8s az alkalmazástárolókat egyszerűen felfedezhető és kezelhető logikai egységekbe csoportosítja.

    Ezenkívül a K8s elsődleges funkciói, például a terheléselosztás, az állandó tárolás, a konténeres alkalmazások automatikus visszaállítása, a titkok, a Kubernetes-fürtök öngyógyítása és a konfigurációkezelés.

    Olvassa el még: A Kubernetes használatának megkezdése: Bevezetés kezdőknek

    A Kubernetes előnyei

  • Nyílt forráskód (nincs szállítói bekötés) – Akár a helyszínen, akár a felhőben fut, a Kubernetes a hangszerelési stratégia újratervezése nélkül is használható. A hagyományos szoftverektől eltérően, amelyek bizonyos licencdíjakat vonnak maguk után, a K8s ingyenes és nyílt forráskódú. Mintha ez nem lenne elég, a K8s-fürtök nyilvános és privát felhőkön futnak, és mindkét entitáson virtualizációs erőforrásokat biztosítanak.
  • Nagy teljesítményű rugalmasság – A K8s nagyszerű megoldás, ha alkalmazásai magas rendelkezésre állást igényelnek, miközben támogatja a hatékonyságot és a méretezhetőséget. Ez a tulajdonság taktikailag hasznos a magas bevételt generáló alkalmazásokban. Egyszerűen fogalmazva, ez a munkaterhelések részletes szabályozása. Azokban az esetekben, amikor az alkalmazásait erősebb platformokra szeretné váltani, a K8s nem korlátozódik az olyan szállítói zárolásokra, mint az ECS.
  • Magas rendelkezésre állás – Amint fentebb említettük, a K8s tervezése az alkalmazások elérhetőségét és a szükséges infrastruktúrát biztosítja, ami szükségessé teszi a gyártás alatt álló konténerek számára. A magas rendelkezésre állás mellett néhány technika létezik:
    • Egészségügyi ellenőrzések és öngyógyítás – A Kubernetes a csomópontok rendszeres ellenőrzésével megóvja alkalmazásait a hibáktól. Ha egy hüvely vagy tartály egy hiba miatt összetörik, a K8s automatikusan cserét kér.
    • Terheléselosztás és forgalomirányítás – A forgalomirányítással kapcsolatban a K8s csak a megfelelő konténerekhez küld kéréseket. A terheléselosztással pedig a K8s elosztja a terheléseket a pod-ok között, kiegyensúlyozva az erőforrásokat számos esetben, például leállások, véletlen csúcsforgalom vagy kötegelt feldolgozás esetén. Ismét használhatja a külső terheléselosztókat, ha akarja.
  • Munkaterhelés méretezhetősége – A fent említettek ellenére bontsuk tovább. A K8s erőforrásait arra használja fel, hogy hatékony skálázást biztosítson a következő kritériumok szerint.
    • Automatikus méretezés – Ez a funkció lehetővé teszi a futó konténerek számának automatikus beállítását a CPU kihasználtság és egyéb CPU-metrikák szerint.
    • Kézi méretezés – A funkció segítségével a parancssorban vagy a felületen keresztül skálázhatja a futó konténerek számát.
    • Replikációs vezérlő – Ez az eszköz lehetővé teszi a fürt specifikációinak megfelelő podok számának meghatározását; ha kevés, akkor újat kezd, és ha túl sok, akkor leállítja őket.
      Asztali Chrome-bővítmények telepítése Androidra
  • Üzembe helyezésre tervezve – A K8s kifejezetten a szoftver felépítésének, tesztelésének és szállításának felgyorsítására készült. Íme néhány felajánlott funkció:
    • Automatikus visszagörgetés és közzététel – A fejlesztés során érdemes lehet néhány új konfigurációt vagy alkalmazásfrissítést bevezetni. A K8s lehetővé teszi a folyamat végrehajtását az alkalmazás leállása nélkül. Meghibásodás esetén a K8-asok robotszerűen visszagurulnak az előző verzióhoz.
    • Kanári üzembe helyezések – Kihasználhatja ezt a funkciót, ha az előző verzióval párhuzamosan teszteli az éles környezetben az új telepítéseket; A K8s lehetővé teszi az alkalmazás legutóbbi verziójának kicsinyítését, ugyanakkor a legújabb verzió méretezését.
    • Programozási nyelvek és keretrendszerek változatos támogatása – Legyen szó Go, Java vagy .Net programozási nyelvi háttérről, a Kubernetes számos fejlesztői nyelvet és keretrendszert támogat. Ha egy alkalmazás futhat egy tárolón, akkor K8s-on fut.
  • Szolgáltatások felfedezése – Minden fejlesztő arra vágyik, hogy az összes nyújtott szolgáltatás valamilyen módon kommunikáljon egymással. A K8s működési modellje azonban magában foglalja a konténerek folyamatos létrehozását és megsemmisítését, így egyes szolgáltatások bizonyos helyeken nem léteznek. A hagyományos fejlesztés során egy szolgáltatásnyilvántartást alakítanának ki e szolgáltatások helyszíneinek nyomon követésére. A K8s egy natív szolgáltatási koncepcióval oldja meg ezt a problémát, hogy csoportosítsa a pod-okat és zökkenőmentesen fedezze fel a szolgáltatásokat. Tehát a K8s IP-címet biztosít az összes podkészlethez, DNS-neveket oszt ki minden podkészlethez, majd kiegyenlíti a terhelési forgalmat minden podkészleten. Ez az architektúra olyan környezetet hoz létre, amelyben a szolgáltatásfelderítés minden tárolóból elvonatkoztatott.
  • Élénk közösség – A K8s mögött élénk közösség áll, több ezer fejlesztővel, akik kihasználják szolgáltatásait. A cikk írásakor több mint 100 millió fejlesztő használja a K8-asokat a felfedezéshez, és 330 millió projekthez járult hozzá. A közösség nem mutatja a lassulás jeleit, és ösztönzi a fejlesztők közötti együttműködést.
  • A Kubernetes korlátai

  • Meredek tanulási görbe – A Kubernetes használatának megkezdéséhez meg kell értenie a környezetét. Ezen túlmenően a teljes körű megoldás megvalósításához számos technológia és szolgáltatás beépítése szükséges. És mivel a kiegészítő technológiák jelentősen eltérőek (néha egyes megoldások a UNIX által uralt időkre nyúlnak vissza, míg mások új technológiák, amelyek alkalmazása alacsony), nehéz lehet eldönteni, hogy melyiket kell beépíteni. Azt is ki kell találnia, hogy az összes összetevő hogyan illeszkedik egymáshoz, hogy átfogóbb megoldást kínálhasson bizonyos problémákra. A dokumentáció rendelkezésre áll, de meg kell értenie, hogyan kell ezeket a szolgáltatásokat nyújtani és kezelni.
  • Funkciók és projektek megkülönböztetése – A projektek és funkciók közötti különbségek megértése kihívást jelenthet. Bár könnyen kaphat tanácsot a projektek kezelésével kapcsolatban, előfordulhat, hogy nem tesz egyértelmű különbséget a funkciók és a közösségi projektek között.
  • A Kubernetesen túlmutató tudás – A Kubernetes egy kifinomult platform. A megoldások szállításának ennyire bonyolultsága mellett valószínűleg némi zavarba fog ütközni, különösen, ha még újonc. Ennek ellenére a szervezetek továbbra is szeretnének megoldásokat kínálni (például adattárakat szolgáltatásként), amelyek felerősítik a tanulási görbét. Ha ilyen szolgáltatásokat vesz igénybe a termékén, akkor ismereteit a Kubernetesen túl kell bővítenie.
  • A Kubernetes kezelése nehéz – a K8-asokkal a gyártáshoz való eljutás egy dolog. Az alkalmazások kezeléséhez minden szükséges erőforrást biztosítania kell. Ezenkívül kezelnie kell az összes biztonságot, és integrálnia kell az infrastruktúrájába. Ezenkívül magas szintű szakértelemre lesz szüksége az eszközök hatékony feldolgozásához és működtetéséhez. Alapos ismeretekre lesz szüksége a Kubernetes-fürtök kezeléséhez, a fürtök figyeléséhez és hibaelhárításához, valamint széles körű támogatásukhoz.
  •   Hogyan lehet törölni az összes üzenetet a táviratban

    Az ECS és a Kubernetes összehasonlítása

    Íme egy egymás melletti összehasonlítás, amely bemutatja a különbségeket:

    A különbség KubernetesAmazon ECSAlkalmazásdefiníció Az alkalmazások telepítése podok, csomópontok és szolgáltatások kombinálásával történik. Az alkalmazások üzembe helyezése feladatok formájában történik. A feladatok konténerpéldányok – például az ECS-példányokon futó Docker-tárolók.DeploymentComplex, mivel a fürtöket manuálisan kell telepítenie és konfigurálnia.Könnyű üzembe helyezés az AWS-konzolon keresztül.Csomópont-támogatás (gépek száma)5000 csomópont fürtönként.1000 csomópont fürtönként .Konténerek Akár 300 000 konténer klaszterenként.A kihasznált infrastruktúra kapacitása korlátozza.Teherelosztás A Pod-ok a bemeneti vezérlők mögött terheléselosztóként használt szolgáltatásokon keresztül érhetők el.Két terheléselosztó áll rendelkezésre; Az ELB-Application vagy Network.PricingFree.ECS ingyenes, de fizetnie kell az EC2 erőforrásokért.Optimalizálás Jól optimalizálva egyetlen nagy fürthöz.Előre konfigurálva a követelményekkel és a tárolókövetelményekkel.AutoscalingAz automatikus skálázási paramétereket a telepítések felépítésekor határozhatja meg.Az olyan megfigyelési szolgáltatásokat használ, mint a CloudWatch a CPU, a memória és az egyéni paraméterek alapján automatikusan skálázható.Állapot-ellenőrzésKét állapotellenőrzés érhető el: készenlét és életerő.Megfigyelési szolgáltatások révén érhető el, mint a CloudWatch.Szolgáltatásfelderítés Környezeti változókon vagy DNS-en keresztül.Megfigyelési szolgáltatásokon keresztül érhető el – CloudWatch.Vendor-lock nem.Igen.

    Az ECS és a Kubernetes használati esetei

    A következőképpen forradalmasítja az iparágakat az ECS és a Kubernetes konténerezési technológia:

    Az ECS INC International számos olyan felhasználási esetet emel ki, ahol az ECS technológiát implementálták. A modern orvosi eszközökben forradalmasított módszereket találhat a betegek kezelésére és a gyógyszeradagolási technikákat. Számos eszköz létezik, például elektronikus inhalátorok, orvosi autoinjektorok és infúziós pumpák.

    Az IoT tartományban intelligens otthoni eszközökkel rendelkezünk. Ha a figyelmet az autóiparra helyezi, akkor intelligens elektromos autóink vannak, amelyek fokozott vezetési élményt és fejlett biztonsági intézkedéseket, például rásegített fékrendszereket kínálnak.

    Eddig ez a jéghegy csúcsa; megtekintheti az ECS további alkalmazásait, amelyek nem korlátozódnak a vezeték nélküli technológiára, a hordható eszközökre és az ipari felhasználásra.

    Másrészt a Kubernetes gyakorlati alkalmazásokkal rendelkezik. Először is, az IBM felhő privát, nyilvános és hibrid funkciókat kínál a futási idők széles skáláján.

    A Spotify, a zenei streamelés óriása, a Kubernetes technológiát használja fel, hogy megkönnyítse a zökkenőmentes működést, akár 10 millió kérés másodpercenként. Bár ezek valós felhasználási esetek, a K8s több funkciót szolgál ki a mikroszolgáltatások architektúrájában, a felhőalapú hálózati funkciókban, a gépi tanulásban és a szoftverfejlesztési életciklus megváltoztatásában.

    Végső szavak

    Miután végigjárta ezt az útmutatót, szilárd áttekintést kap az ECS vagy a K8s választásának előnyeiről és hátrányairól. A megfelelő opció kiválasztásának kulcsa néhány érv alapján történik. Mérlegelnie kell a költségek, a szolgáltatási korlátok és a tehetségek költségei között.

    Ha ingyenes szolgáltatást szeretne igénybe venni, a K8s lesz az első számú választás. Azonban szilárd tehetségre vagy készségekre lesz szüksége ahhoz, hogy kezelni tudja az ezzel járó összetettséget. Míg a K8s-nak nincsenek gyártói bezárási korlátozásai, ahhoz a platform működésének alapos megértését kell elvégezni. Az ECS viszont gyors konfigurációkat kapott.

    Ezután tekintse meg a Kubernetes vs. Docker részletes útmutatóját.