Ha a fejlesztési munkafolyamatot konténerbe helyezte, akkor egyetért abban, hogy a Docker az egyik legjobb választás a verziókezeléshez. A Docker Swarm azonban a Docker egyik olyan funkciója, amelyet összetett alkalmazások hangszerelésére használnak.

A Docker Swarm működő mechanizmusát először nehéz lehet feltörni. De ne aggódj, ebben a cikkben részletezzük. Tehát mi az a Docker Swarm? Miért használja? És hogyan működik?

Mi az a Docker Swarm, és hogyan működik?

A Docker Swarm a Docker-állomások (számítógépek) csoportjára utal, amelyek fürtként vannak hálózatba kapcsolva meghatározott feladatok elvégzésére. Ebben a fürtben minden Docker-állomás egy csomópont, amelyet munkavégző csomópontnak is neveznek.

A feladatok hatékony elosztása érdekében szükség van egy menedzser csomópontra. Ideális esetben a Docker Swarm mód inicializálása a menedzser csomóponttal kezdődik, és a következő csomópontok dolgozókká válnak.

Operátorként csak a menedzser csomóponttal kell kapcsolatba lépnie, amely utasításokat ad át a dolgozóknak. A dolgozó csomópontok mindig megkapják a feladatkiosztást a menedzser csomóponttól, és ennek megfelelően hajtják végre azokat.

instagram viewer

A menedzser csomópont azonban részt vehet a feladat végrehajtásában (dolgozóként) vagy az arckezelésben is. Megakadályozhatja a feladatütemezést a kezelőn, ha átkapcsolja állapotát aktív nak nek csatorna. De a kettős funkció hozzárendelésére vonatkozó döntése több tényezőtől is függhet. Lényegében meg kell győződnie arról, hogy elegendő erőforrással rendelkezik több szerepkör kezelésére, mielőtt ezt megtenné.

A csomópontok meghibásodnak. Így a menedzser csomópont aktívan figyeli az egyes dolgozó csomópontok állapotát, és aktivál egy hibatűrő mechanizmust, hogy átütemezze a feladatot egy meghibásodott csomópontról egy másikra.

De mi van akkor, ha a menedzser csomópont is összeomlik? Érdekes módon a raj folyamatosan fut. Az egyetlen buktató az, hogy többé nem tud kommunikálni a kezelőcsomóponttal a fürt vezérléséhez.

A gyakori hibamentes megközelítés ennek megakadályozására az, hogy sok csomóponthoz hozzárendeljük a menedzser szerepkört (a Docker fürtönként legfeljebb hetet javasol). Ezután kiválaszthatja közülük az elsődleges kezelői csomópontot. Amikor az elsődleges menedzser összeomlik, az egyik készenléti kezelő veszi át a szerepet.

Nem kell azonban aggódnia a csomópontok közötti szerepváltások vagy a fürt állapotának karbantartása miatt. A Docker SwarmKitbe épített raft konszenzus algoritmus (egy hibatűrő módszer) gondoskodik erről.

Miért érdemes a Docker Swarm-ot használni?

A Docker Swarm remek skálázhatósági kilátásokkal rendelkező összetett alkalmazások telepítéséhez hasznos. Egyik elsődleges felhasználási esete a mikroszolgáltatások decentralizálása. Ezután minden mikroszolgáltatás megoszt egy hasonló tárolót a többi munkavégző csomóponton lévőkkel.

A Docker Swarm használatának másik oka az, hogy egy fürtben több gazdagép fut egyidejűleg feladatokat. Ezzel ellentétben a Docker Compose, amely csak több tároló futtatását teszi lehetővé egy Docker-motoron.

A Docker Swarm e méretezhető attribútuma lehetővé teszi, hogy az alkalmazások következetesen elérhetőek legyenek nulla késleltetéssel. Ez még az egyik oka annak, hogy szeretné válassza a Dockert a többi virtualizációs eszköz helyett.

És mi több? Ellentétben az egyedi Docker-tárolókkal, ahol a tároló leáll, ha meghibásodik, a Docker Swarm automatikusan újraosztja a feladatokat az elérhető munkavégző csomópontok között, amikor valamelyik meghibásodik.

A Docker Swarm biztonsági másolatot is készít az egyes állapotokról. Így az új rajkonfigurációkat mindig visszaállíthatja a korábbi állapotára. Tegyük fel, hogy egy korábbi raj menedzser csomópontja meghibásodik; elindíthat egy új fürtöt több menedzser csomóponttal, és visszaállíthatja az előző konfigurációjának módosításához.

Azt is fontos megemlíteni, hogy a menedzser csomópont és a dolgozó csomópontok közötti interakció biztonságos.

A Dockernek számos alternatívája van, és az egyik legközelebbi a Kubernetes. A Docker Swarm azonban könnyen használható és automatizáltabb. Míg például előfordulhat, hogy néhány más hangszerelési eszközben, például a Kubernetesben manuálisan kell kiegyensúlyoznia a terhelést, a Docker Swarm automatikus terheléselosztással rendelkezik, amely megkönnyíti a DevOps életét.

A Docker Swarm architektúrája

A Docker Swarm architektúra a szolgáltatások, csomópontok és feladatok körül forog. Azonban mindegyiknek megvan a maga szerepe a verem sikeres futtatásában.

Szolgáltatások

A Docker Swarm szolgáltatás részletezi a Docker lemezkép konfigurációját, amely a rajban lévő összes tárolót futtatja. Információkat tartalmaz a fürtben lévő feladatokról. Például egy szolgáltatás leírhatja a Dockerizált SQL szerver beállítása.

Amikor egy szolgáltatást futtat, az arra kényszeríti a kezelőcsomópontot, hogy szinkronizáljon a konfigurációjával. A menedzser csomópont ezután a többi dolgozó csomópontot a szolgáltatásban megadott beállítások alapján futtatja.

A Docker Swarm szolgáltatásai lehetnek globálisak vagy replikáltak.

A különbség köztük az, hogy míg a globális szolgáltatások csak egy feladatot határoznak meg a fürt összes csomópontjához, a replikált szolgáltatások csomópontonkénti feladatok számát határozzák meg.

Csomópontok

A Docker Swarm egyik csomópontja a teljes Docker futási környezet egy példánya, más néven Docker motor. A Swarm csomópontjai lehetnek fizikai vagy virtuális gépek. Tekintsük ezt hasonló folyamatokat (tárolókat) futtató számítógépek hálózatának.

Általában azonban a csomópontok több számítógépen és kiszolgálón is átnyúlnak, amelyek a valós alkalmazásokban futtatják a Docker-motort. És ahogy korábban említettük, a csomópont lehet menedzser vagy dolgozó csomópont, a szereptől függően.

A menedzser csomópont figyeli a raj szívverését, és vezérli a dolgozó csomópontokat, amelyek végrehajtják a menedzser csomópont által hozzájuk rendelt feladatokat. Ahogy korábban említettük, egy rajban több menedzser csomópont is lehet. De ideális esetben próbálja meg hét alá korlátozni a számot, mivel túl sok menedzser csomópont hozzáadása csökkentheti a raj teljesítményét.

Feladatok

Egy feladat határozza meg a Docker Swarm egyes csomópontjaihoz rendelt munkát. A háttérben a Docker Swarm feladatütemezése akkor indul el, amikor egy irányító feladatokat hoz létre, és átadja azokat egy ütemezőnek, amely minden egyes feladathoz létrehoz egy tárolót.

A kezelőcsomópont ezután az ütemezőt használja a feladatok csomópontokhoz való hozzárendeléséhez és újbóli hozzárendeléséhez a Docker szolgáltatásban előírt és meghatározott módon.

Docker Swarm vs. Docker Compose: mik a különbségek?

Az emberek gyakran felváltva használják a Docker Compose-t és a Docker Swarm-ot. Bár mindkettő több tároló futtatását foglalja magában, különböznek egymástól.

Míg a Docker Compose lehetővé teszi több tároló futtatását egyetlen gazdagépen, a Docker Swarm elosztja azokat több Docker-motor között egy fürtben.

Akkor használja a Docker Compose-t, amikor külön konténereket kell felállítania az alkalmazás minden szolgáltatásához. Így amikor az egyik összetevő összeomlik, nem zavarja a többit. Ha azonban a gazdagép meghibásodik, az egész alkalmazás is összeomlik.

A Docker Swarm azonban segít számos tároló futtatásában fürtözött csomópontokon. Tehát az alkalmazás minden összetevője több csomóponton található. És amikor egy alkalmazásösszetevőt kezelő csomópont összeomlik, a raj a feladatát a fürtön belüli másik csomóponthoz rendeli, és átütemezi a futó feladatokat, megelőzve az állásidőt.

Ennélfogva, bár előfordulhat, hogy leállásai vannak a Docker Compose-ban, a Docker Swarm gondoskodik arról, hogy az alkalmazás a biztonsági mentési kiszolgálók (munkavégző csomópontok) segítségével fusson. A Docker 1.13 azonban támogatja a Docker Compose Swarm módba történő telepítését a dokkolóverem telepítése parancs.

A Docker Swarm segít komplex alkalmazások telepítésében

A konténerezés megelőzte a virtuális gépeket a folyamatos integráció és a folyamatos szállítás (CI/CD) szoftvertervezésben. Ezért a Docker Swarm mechanizmus alapjainak megértése plusz készség, ha felbecsülhetetlen értékű DevOps-szakértő szeretne lenni.

Valószínűleg tudja, hogyan kell felpörgetni egy Docker-tárolót, vagy akár egy Docker Compose-t futtatni több tárolóhoz egyetlen gazdagépen. A Docker Swarm azonban kényelmesebb az összetett architektúrájú alkalmazások telepítéséhez. A folyamatokat egységekre bontja, javítja a futásidejű hozzáférést, és csökkenti vagy akár ki is küszöböli az állásidő esélyét.