Kui olete oma arendustöövoogu koondanud, nõustute, et Docker on üks parimaid valikuid versioonihalduseks. Docker Swarm on aga üks Dockeri funktsioone, mida kasutatakse keerukate rakenduste orkestreerimiseks.

Docker Swarmi töömehhanismi võib alguses olla raske murda. Kuid ärge muretsege, me käsitleme seda selles artiklis. Mis on Docker Swarm? Miks seda kasutada? Ja kuidas see toimib?

Mis on Docker Swarm ja kuidas see töötab?

Docker Swarm viitab Dockeri hostide (arvutite) rühmale, mis on ühendatud klastrina, et pakkuda kindlaksmääratud ülesandeid. Iga selle klastri Dockeri host on sõlm, mida nimetatakse ka töötaja sõlmeks.

Ülesannete tõhusa jaotuse tagamiseks vajate halduri sõlme. Ideaalis algab Docker Swarmi režiimi lähtestamine haldurisõlmest ja järgmistest sõlmedest saavad töötajad.

Operaatorina peate suhtlema ainult halduri sõlmega, mis edastab töötajatele juhiseid. Alati saavad töötaja sõlmed haldurisõlmelt ülesannete jaotuse ja täidavad need vastavalt.

Kuid haldurisõlm võib osaleda ka ülesande täitmises (töötajana) või näohalduses. Saate takistada halduri ülesannete ajastamist, lülitades selle olekust välja

instagram viewer
aktiivne juurde äravool. Kuid teie otsus selle kahe funktsiooni määramise kohta võib sõltuda mitmest tegurist. Põhimõtteliselt soovite enne selle tegemist olla kindel, et sellel on piisavalt ressursse mitme rolli täitmiseks.

Sõlmed ebaõnnestuvad. Seega jälgib haldursõlm aktiivselt iga töötaja sõlme olekut ja aktiveerib tõrketaluvusega mehhanismi, et ajastada ülesanne ebaõnnestunud sõlmelt teise.

Aga mis siis, kui ka haldurisõlm jookseb kokku? Huvitaval kombel sülem muudkui jookseb. Ainus probleem on see, et te ei saa enam klastri juhtimiseks haldurisõlmega suhelda.

Levinud tõrkekindel lähenemisviis selle vältimiseks on haldurirolli määramine paljudele sõlmedele (Docker soovitab maksimaalselt seitset klastri kohta). Seejärel saate nende hulgast valida esmase haldurisõlme. Kui esmane haldur jookseb kokku, võtab selle rolli üks ooterežiimi halduritest.

Siiski ei pea te muretsema rollide vahetamise pärast sõlmede vahel ega klastri olekuhoolduse pärast. Selle eest hoolitseb Docker SwarmKiti sisseehitatud parve konsensusalgoritm (tõrkekindel meetod).

Miks kasutada Docker Swarmi?

Docker Swarm on mugav keerukate rakenduste juurutamiseks, millel on kõrge skaleeritavus. Üks selle peamisi kasutusviise on mikroteenuste detsentraliseerimine. Seejärel jagab iga mikroteenus samasugust konteinerit teiste töötajate sõlmedega.

Teine põhjus Docker Swarmi kasutamiseks on see, et mitu hosti käitavad ülesandeid klastris samaaegselt. See on vastupidine Docker Compose'ile, mis võimaldab teil töötada ainult ühes Dockeri mootoris mitu konteinerit.

See Docker Swarmi skaleeritav atribuut võimaldab rakendustel olla pidevalt saadaval null latentsusajaga. See on isegi üks põhjustest, miks sa seda tahad valige muude virtualiseerimistööriistade asemel Docker.

Ja mis veel? Erinevalt üksikutest Dockeri konteineritest, kus konteiner peatub, kui see ebaõnnestub, jaotab Docker Swarm ülesanded saadaolevate töötaja sõlmede vahel automaatselt ümber, kui üks ebaõnnestub.

Docker Swarm hoiab ka iga osariigi varukoopiat. Seega saate alati taastada sülemi uued konfiguratsioonid endise olekusse. Oletame, et eelmise sülemi halduri sõlm ebaõnnestub; saate käivitada uue klastri rohkemate haldurisõlmedega ja taastada selle eelmise konfiguratsiooni kohandamiseks.

Samuti on oluline mainida, et haldurisõlme ja töötaja sõlmede vaheline suhtlus on turvaline.

Dockeril on palju alternatiive, ja üks lähimaid on Kubernetes. Docker Swarmi on aga lihtne kasutada ja rohkem automatiseeritud. Näiteks kui teil võib tekkida vajadus mõne muu orkestreerimistööriista (nt Kubernetes) puhul koormust käsitsi tasakaalustada, on Docker Swarmil automaatne koormuse tasakaalustamine, mis muudab DevOpsi elu lihtsaks.

Dockeri sülemi arhitektuur

Docker Swarmi arhitektuur keerleb teenuste, sõlmede ja ülesannete ümber. Siiski on igal ühel oma roll virna edukas käitamises.

Teenused

Teenus Docker Swarm kirjeldab üksikasjalikult Dockeri kujutise konfiguratsiooni, mis käitab kõiki konteinereid sülemis. See sisaldab teavet klastri ülesannete kohta. Näiteks võib teenus kirjeldada a Dockeriseeritud SQL-serveri seadistamine.

Kui käitate teenust, sunnib see haldurisõlme oma konfiguratsioonidega sünkroonima. Seejärel käitab haldursõlm ülejäänud töötaja sõlmed teenuses määratud sätete alusel.

Docker Swarmi teenused võivad olla globaalsed või kopeeritud.

Nende erinevus seisneb selles, et kui globaalsed teenused määratlevad klastri kõigi sõlmede jaoks ainult ühe ülesande, siis paljundatud teenused määravad ülesannete arvu sõlme kohta.

Sõlmed

Docker Swarmi sõlm on kogu Dockeri käitusaja eksemplar, mida tuntakse ka Dockeri mootorina. Sülemissõlmed võivad olla füüsilised või virtuaalsed masinad. Mõelge sellele kui arvutite võrgule, mis käitavad sarnaseid protsesse (konteinereid).

Tavaliselt hõlmavad sõlmed siiski mitme arvuti ja serveri vahel, mis töötavad reaalsetes rakendustes Dockeri mootorit. Ja nagu varem mainitud, võib sõlm olenevalt rollist olla kas juhi või töötaja sõlm.

Haldursõlm kuulab sülemi südamelööke ja juhib töötajasõlmi, mis täidavad neile haldurisõlme poolt määratud ülesandeid. Nagu varem öeldud, võib sülemis olla rohkem kui üks haldurisõlm. Kuid ideaaljuhul proovige piirata arvu alla seitsme, kuna liiga paljude haldurisõlmede lisamine võib sülemi jõudlust vähendada.

Ülesanded

Ülesanne määratleb igale Docker Swarmi sõlmele määratud töö. Taustal algab Docker Swarmi ülesannete ajastamine siis, kui orkestraator loob ülesanded ja edastab need planeerijale, mis loob iga ülesande jaoks konteineri.

Seejärel kasutab haldursõlm plaanijat ülesannete määramiseks ja ümberjaotamiseks sõlmedele, nagu nõutakse ja Dockeri teenuses on määratud.

Docker Swarm vs. Dockeri koostamine: millised on erinevused?

Inimesed kasutavad Docker Compose'i ja Docker Swarmi sageli vaheldumisi. Kuigi mõlemad hõlmavad mitme konteineri käitamist, on need erinevad.

Kui Docker Compose võimaldab teil ühes hostis käitada mitut konteinerit, jaotab Docker Swarm need klastris mitme Dockeri mootori vahel.

Docker Compose'i kasutate siis, kui teil on vaja rakenduses iga teenuse jaoks eraldi konteinereid luua. Seega, kui üks komponent jookseb kokku, ei sega see teisi. Kui aga hostmasin ebaõnnestub, jookseb kokku ka kogu rakendus.

Docker Swarm aga aitab teil käitada paljusid konteinereid rühmitatud sõlmedes. Seega asub teie rakenduse iga komponent mitmel sõlmel. Ja kui üks rakenduse komponenti käsitlev sõlm jookseb kokku, jagab sülem oma ülesande klastri teisele sõlmele ja ajastab tööülesanded ümber, vältides seisakuid.

Seega, kuigi teil võib Docker Compose'is olla seisakuid, tagab Docker Swarm, et teie rakendus töötab varuserverite (töösõlmede) abil. Docker 1.13 toetab siiski Docker Compose'i juurutamist Swarm-režiimis, kasutades dokkide virna juurutamine käsk.

Docker Swarm aitab teil juurutada keerulisi rakendusi

Konteinerimine on virtuaalmasinaid üle trumbanud pideva integreerimise ja pideva tarnimise (CI/CD) tarkvarakujunduses. Seetõttu on Docker Swarmi mehhanismi keerukuse mõistmine plussoskus, kui soovite saada hindamatuks DevOpsi eksperdiks.

Tõenäoliselt teate, kuidas Dockeri konteinerit kokku panna või isegi Docker Compose'i käivitada mitme konteineri jaoks ühes hostis. Kuid Docker Swarm on keerulise arhitektuuriga rakenduste juurutamiseks mugavam. See jaotab protsessid üksusteks, parandab juurdepääsu tööajal ja vähendab või isegi välistab seisakuvõimalused.