Jos olet koonnut kehitystyönkulkuasi, olet samaa mieltä siitä, että Docker on yksi parhaista vaihtoehdoista versionhallintaan. Docker Swarm on kuitenkin yksi Dockerin ominaisuuksista, joita käytetään monimutkaisten sovellusten järjestämiseen.
Docker Swarmin toimintamekanismi voi olla aluksi vaikea murtaa. Mutta ei hätää, jaamme sen tässä artikkelissa. Joten mikä on Docker Swarm? Miksi käyttää sitä? Ja miten se toimii?
Mikä on Docker Swarm ja miten se toimii?
Docker Swarm viittaa Docker-isäntien (tietokoneiden) ryhmään, joka on verkotettu klusterina suorittamaan määritettyjä tehtäviä. Jokainen tämän klusterin Docker-isäntä on solmu, jota kutsutaan myös työntekijäsolmuksi.
Tehokkaan tehtävien jakautumisen varmistamiseksi tarvitset johtajasolmun. Ihannetapauksessa Docker Swarm -tilan alustus alkaa johtajasolmusta, ja seuraavista solmuista tulee työntekijöitä.
Operaattorina sinun tarvitsee olla vuorovaikutuksessa vain esimiessolmun kanssa, joka välittää ohjeita työntekijöille. Työntekijäsolmut saavat poikkeuksetta tehtävien allokoinnin johtajasolmulta ja suorittavat ne sen mukaisesti.
Esimiessolmu voi kuitenkin myös osallistua tehtävien suorittamiseen (työntekijänä) tai kasvojen hallintaan suoraan. Voit estää tehtävien ajoituksen hallinnassa vaihtamalla sen tilasta aktiivinen to valua. Mutta päätöksesi määrittää tämä kaksoistoiminto voi riippua useista tekijöistä. Pohjimmiltaan haluat varmistaa, että sillä on tarpeeksi resursseja useiden roolejen hoitamiseen, ennen kuin teet niin.
Solmut epäonnistuvat. Siten hallintasolmu tarkkailee aktiivisesti kunkin työntekijäsolmun tilaa ja aktivoi vikasietomekanismin, joka ajoittaa tehtävän uudelleen epäonnistuneesta solmusta toiseen.
Mutta entä jos myös managerisolmu kaatuu? Mielenkiintoista, että parvi jatkaa käynnissä. Ainoa ongelma on se, että et voi enää kommunikoida johtajasolmun kanssa hallitaksesi klusteria.
Yleinen vikaturvallinen tapa tämän estämiseksi on määrittää johtajarooli useille solmuille (Docker suosittelee enintään seitsemää klusteria kohden). Voit sitten valita niistä ensisijaisen johtajasolmun. Kun ensisijainen johtaja kaatuu, yksi valmiustilan esimiehistä ottaa roolin.
Sinun ei kuitenkaan tarvitse huolehtia roolien vaihdosta solmujen välillä tai tilan ylläpidosta klusterissa. Docker SwarmKitiin sisäänrakennettu lauttakonsensusalgoritmi (vikasietoinen menetelmä) huolehtii tästä.
Miksi käyttää Docker Swarmia?
Docker Swarm on kätevä monimutkaisten sovellusten käyttöönotossa, joilla on hyvät skaalautuvuusmahdollisuudet. Yksi sen ensisijaisista käyttötapauksista on mikropalvelujen hajauttaminen. Jokainen mikropalvelu jakaa sitten samanlaisen säilön muiden työntekijäsolmujen kanssa.
Toinen syy Docker Swarmin käyttämiseen on se, että useat isännät suorittavat tehtäviä samanaikaisesti klusterissa. Tämä on toisin kuin Docker Compose, jonka avulla voit käyttää vain useita säilöjä yhdessä Docker-moottorissa.
Tämän Docker Swarmin skaalautuvan ominaisuuden ansiosta sovellukset ovat jatkuvasti saatavilla nollaviiveellä. Se on jopa yksi syistä, miksi haluat valitse Docker muiden virtualisointityökalujen sijaan.
Ja mitä muuta? Toisin kuin yksittäiset Docker Containers, joissa kontti pysähtyy, kun se epäonnistuu, Docker Swarm jakaa tehtävät automaattisesti uudelleen käytettävissä olevien työntekijäsolmujen kesken aina, kun jokin epäonnistuu.
Docker Swarm pitää myös varmuuskopion jokaisesta osavaltiosta. Voit siis aina palauttaa uudet parvikokoonpanot entiseen tilaan. Sano, että edellisen parven managerisolmu epäonnistuu; voit aloittaa uuden klusterin, jossa on enemmän hallintasolmuja, ja palauttaa sen mukauttaaksesi edellisen kokoonpanon.
On myös tärkeää mainita, että vuorovaikutus johtajasolmun ja työntekijäsolmun välillä on turvallista.
Dockerilla on monia vaihtoehtoja, ja yksi lähimmistä on Kubernetes. Docker Swarm on kuitenkin helppokäyttöinen ja automatisoidumpi. Esimerkiksi vaikka saatat joutua tasapainottamaan kuormitusta manuaalisesti joissakin muissa orkestrointityökaluissa, kuten Kubernetesissa, Docker Swarm sisältää automaattisen kuormituksen tasapainotuksen, mikä helpottaa DevOpsin elämää.
Docker Swarm -arkkitehtuuri
Docker Swarm -arkkitehtuuri pyörii palveluiden, solmujen ja tehtävien ympärillä. Jokaisella on kuitenkin tehtävänsä pinon onnistuneessa ajamisessa.
Palvelut
Docker Swarm -palvelu kertoo Docker-kuvan kokoonpanon, joka käyttää kaikkia kontit parvessa. Se sisältää tietoja klusterin tehtävistä. Palvelu voi esimerkiksi kuvata a Telakoitu SQL-palvelimen asennus.
Kun suoritat palvelun, se pakottaa hallintasolmun synkronoimaan sen kokoonpanojen kanssa. Hallinnoijasolmu suorittaa sitten loput työntekijäsolmut palvelun määritettyjen asetusten perusteella.
Docker Swarmin palvelut voivat olla globaaleja tai replikoituja.
Niiden välinen ero on se, että vaikka globaalit palvelut määrittelevät vain yhden tehtävän kaikille klusterin solmuille, replikoidut palvelut määrittävät tehtävien määrän solmua kohti.
Solmut
Docker Swarmin solmu on esiintymä koko Docker-ajoajasta, joka tunnetaan myös nimellä Docker-moottori. Swarm-solmut voivat olla fyysisiä tai virtuaalisia koneita. Ajattele tätä tietokoneiden verkostona, jotka suorittavat samanlaisia prosesseja (säiliöitä).
Yleensä kuitenkin solmut ulottuvat useiden tietokoneiden ja palvelimien yli, jotka käyttävät Docker-moottoria tosielämän sovelluksissa. Ja kuten aiemmin mainittiin, solmu voi olla joko esimies- tai työntekijäsolmu roolista riippuen.
Esimiessolmu kuuntelee parven sydämenlyöntejä ja ohjaa työntekijäsolmuja, jotka suorittavat johtajasolmun niille osoittamia tehtäviä. Kuten aiemmin todettiin, parvessa voi olla useampi kuin yksi managerisolmu. Mutta ihannetapauksessa yritä rajoittaa lukumäärä alle seitsemään, koska liian monen johtajasolmun lisääminen saattaa heikentää parven suorituskykyä.
Tehtävät
Tehtävä määrittää kullekin Docker Swarmin solmulle osoitetun työn. Taustalla Docker Swarmin tehtävien ajoitus alkaa, kun orkestraattori luo tehtäviä ja välittää ne ajoittimelle, joka instantoi kullekin tehtävälle säilön.
Hallinnoijasolmu käyttää sitten ajoittajaa tehtävien määrittämiseen ja uudelleen osoittamiseen solmuille Docker-palvelussa vaaditulla ja määritetyllä tavalla.
Docker Swarm vs. Docker Compose: mitkä ovat erot?
Ihmiset käyttävät usein Docker Composea ja Docker Swarmia vaihtokelpoisina. Vaikka molemmissa käytetään useita säilöjä, ne ovat erilaisia.
Vaikka Docker Composen avulla voit käyttää useita säilöjä yhdellä isännällä, Docker Swarm jakaa ne useille Docker-koneille klusterissa.
Käytät Docker Composea, kun sinun on kehitettävä erilliset säilöt jokaiselle sovelluksesi palvelulle. Näin ollen kun yksi komponentti kaatuu, se ei häiritse muita. Kuitenkin, kun isäntäkone epäonnistuu, myös koko sovellus kaatuu.
Docker Swarm auttaa kuitenkin ajamaan monia säilöjä klusteroiduissa solmuissa. Joten sovelluksesi jokainen komponentti sijaitsee useissa solmuissa. Ja kun yksi sovelluskomponenttia käsittelevä solmu kaatuu, parvi allokoi tehtävänsä toiselle klusterin solmulle ja ajoittaa käynnissä olevat tehtävät uudelleen, mikä estää seisokit.
Näin ollen, vaikka sinulla saattaa olla seisokkeja Docker Compose -sovelluksessa, Docker Swarm varmistaa, että sovelluksesi jatkuu varmuuskopiopalvelimien (työntekijäsolmujen) avulla. Docker 1.13 tukee kuitenkin Docker Composen käyttöönottoa Swarm-tilassa käyttämällä telakkapinon käyttöönotto komento.
Docker Swarm auttaa sinua ottamaan käyttöön monimutkaisia sovelluksia
Säiliöinti on ohittanut virtuaalikoneet jatkuvan integroinnin ja jatkuvan toimituksen (CI/CD) ohjelmistosuunnittelussa. Siksi Docker Swarm -mekanismin järjen ymmärtäminen on lisätaito, jos haluat tulla korvaamattomaksi DevOps-asiantuntijaksi.
Tiedät luultavasti kuinka luoda Docker-säilö tai jopa ajaa Docker Composea useille säilöille yhdessä isännässä. Mutta Docker Swarm on kätevämpi ottaa käyttöön sovelluksia, joilla on monimutkainen arkkitehtuuri. Se hajottaa prosessit yksiköihin, parantaa käyttöaikaa ja vähentää tai jopa eliminoi seisokkien mahdollisuuksia.