Dockeri sülem kõrge kättesaadavuse saavutamiseks

See Docker Swarmi ajaveeb selgitab Dockeri mootorite klastri seadistamise jõudu konfigureeritud Docker Swarmi kaudu kõrge kättesaadavuse saavutamiseks.

Mis on mis tahes veebipõhise rakenduse kõige olulisem omadus? Neid on palju, aga minu jaoks suur kättesaadavus on kõige olulisem. Seda aitab Docker Swarm meil saavutada! See aitab rakendusel olla ülimalt kättesaadav.



Minu eelmine ajaveeb , Selgitasin, kuidas Docker Compose töötab. See Docker Swarmi ajaveeb on jätk varasemale ja siin on selgitatud Docker Swarmi kasutamise eeliseid kõigi konteinerite mitmikmahuliste rakenduste konteinerites hoidmiseks.



Selle ajaveebi puhul on see Docker Swarm’ed ainult nurgarakendus.
Märge : MEAN Stacki rakenduse konteinerisse paigutamise meetod on sama.

Mis on Dockeri sülem?

Dockeri sülem on tehnika klastri loomiseks ja hooldamiseks Dockeri mootorid . Dockeri mootoreid saab hostida erinevates sõlmedes ja need kaugemates kohtades asuvad sõlmed moodustavad a Kobar ühendatuna sülemirežiimis.



Miks kasutada Dockeri sülemit?

Juba mainitud põhjustel! Saavutamine suur kättesaadavus ilma seisakuteta on iga sealse teenusepakkuja prioriteet. Kas kõrge kättesaadavus avaldab teie klientidele muljet? Noh, nad ei vaimustu, kui seisavad silmitsi seisakutega. See pole mõttetu.

Docker Swarm'i muud eelised

Nagu paljud muud teenused, teeb ka Docker Swarm automaatselt koormuse tasakaalustamine meile. Seega ei ole DevOpsi inseneridel vajadust marsruutida töötlemistaotlustega teistesse sõlmedesse, kui üks neist ebaõnnestub. Klastri juht teostab meie jaoks automaatselt koormuse tasakaalustamise.

Detsentraliseeritud juurdepääs on veel üks eelis. Mida see tähendab? See tähendab, et haldurilt on kõigile sõlmedele lihtne juurde pääseda. Haldur küsib ka sõlmedelt regulaarselt ja jälgib seisukorraga toimetulekuks nende tervislikku seisundit. Kuid sõlmed ei pääse juurde ega jälgi teistes sõlmedes / haldurites töötavaid teenuseid.



Saate kontrollida nr. sõlmes töötavate konteinerite kohta, suurendamine ei. mahutitest või vähendamine ei. lähtudes meie nõudest, täites lihtsalt ühe käsu.

Isegi pärast rakenduse juurutamist saame selle välja anda jooksvad värskendused ja veenduge, et CI (pidev integreerimine) on saavutatud. Rulluvad värskendused väljastatakse ühele sõlmele teise järel, tagades seeläbi seisakuid ja koormuse jaotuse klastri teiste sõlmede vahel.

Mis siis edasi saab? Selleks, et teha ilmset. Alustage Docker Swarmi kasutamist, kui olete Dockeriga juba töötanud või kui teie organisatsioon soovib usaldusväärset veebiteenust konteinerisse viia.

Märge : Dockeri mootorid on installitud sõltumatutesse hostidesse / serveritesse või hostis mitmesse VM-i.

Alustamine sülemirežiimiga

Docker Swarmi algatab haldur või lubage mul nii öelda, et halduriks saab Swarmi klastri käivitav eksemplar. Klastri käivitamise käsk on:

$ dockeri sülem init - reklaam-addr ip-aadress

Siin kasutatakse lippu – –Advertise-addr teistele reklaamipunktidele, kes soovivad klastriga liituda. Halduri IP-aadress tuleb koos lipuga täpsustada. Allpool on ekraanipildi näidis.

doki init käsk - dokkija sülem - edureka

Kui sülemkobar algatatakse, luuakse halduri lõpus luba. Seda märki peavad sülemikobaraga liitumiseks kasutama ka teised sõlmed.

Kuidas täpselt on? Kopeerige kogu halduri dokkimootoris loodud tunnus, kleepige see sõlme dokkimootorisse ja käivitage see. Ülaltoodud ekraanipildi esiletõstetud osa on märk. Kui luba töötaja sõlmes käivitatakse, näeb see välja nagu järgmine ekraanipilt.

Iga klastriga liitunud sõlme saab hiljem ülemaks saada. Kui soovite, et dokkimismootor liituks haldurina, täitke halduri lõpus järgmine käsk:

$ dockeri sülem liitumisloa haldur

Ja hilisemal ajahetkel, kui soovite, et sõlme luba klastriga liituks, käivitage järgmine käsk:

$ dockeri sülem liitumislubi sõlm

Jätkake ja käivitage klasteriga liitumiseks luba igas soovitud sõlmes. Kui kõik on tehtud, saate käivitada dokkimisõlmede loendi käsu, et kontrollida, kui palju sõlme on koos klastriga liitunud. Käsk on:

$ dokkija sõlm ls

Ekraanipilt on allpool:

Dokeri pildi loomine nurgarakenduse jaoks

Kui kõik on hästi, siis saame alustada oma Swarmi teenust tingimusel, et Docker Image on üles ehitatud. Dockeri pildi saab ehitada Dockerfile'ist. Rakenduste loomiseks kasutatud Dockerfile on järgmine:

FROM sõlmest: 6 RUN mkdir -p / usr / src / app WORKDIR / usr / src / app COPY package.json / usr / src / app RUN npm vahemälu puhas RUN npm install COPY. / usr / src / app EXPOSE 4200 CMD ['npm', 'start']

Dockerfile'i kasutatakse käskude komplekti käivitamiseks kohandatud Dockeri pildi loomiseks baaspildilt. Nagu näete, on minu kasutatud põhipilt ‘Node: 6’. NodeJS on pilt I Docker Hubist, mis on märgistatud versiooniga 6.

Seejärel loon konteinerisse uue Dockeri kataloogi ja muudan selle oma konteineris olevaks töökataloogiks.

Kopeerin faili 'package.json' oma kohalikust masinast konteineri töökataloogi. Seejärel määran käsud RUN npm cache clean ja RUN npm install. npm install käsk laadib alla failis package.json nimetatud sõltuvuste versiooni.

Seejärel kopeerin kõik projektikoodid kohalikust masinast konteinerisse, paljastades pordi numbri 4200, et pääseda brauseris nurga all olevale rakendusele juurde ja lõpuks täpsustan käsu npm start, mis konteineris rakenduse.

kuidas installida hadoop Linuxi

Selle Dockerfile'i põhjal Dockeri pildi loomiseks käivitage järgmine käsk:

$ docker build -t nurgapilt.

Märge: Docker Images tuleb ehitada klastri kõikidesse sõlmedesse. Ilma selleta ei saa konteinereid teistes Dockeri mootorites keerutada.

mis on jamas hashmap ja hashtable

Dockeri sülemiteenuse käivitamine

Arvestades, et meie Docker Image on ehitatud, saame sellest pildist konteineri keerutada. Kuid me teeme midagi paremat: loome sellest teenuse Docker Swarm. Sülemteenuse loomise käsk on:

Teenus $ docker create --name 'Angular-App-Container' -p 4200: 4200 nurkkujutis

Siin kasutatakse lippu “nimi” minu teenusele nime andmiseks ja lippu “p” kasutatakse konteineripordi eksponeerimiseks hostisadamasse. Failis package.json olen määranud konteineripordi, kus peaks nurkarakendust hostima. Ja selles käsus olev 4200 aitab kaardistada konteineri pordi 4200 hosti porti 4200. Nurgeline pilt on minu varem ehitatud pildi nimi.

Pidage meeles : Kui loome teenuse, saab seda hostida mis tahes klastri dokkimootoris. Parve juht otsustab, kus teda võõrustatakse. Kuid olenemata sellest, millises sõlmes seda hostitakse, pääseb rakendusele juurde saidil localhost: 4200 kõigist klastrisse ühendatud sõlmedest.

Kuidas on see võimalik? Kuna Swarm paljastab pordinumbrid sisemiselt ligipääsetavad kõikidele teistele klastri sõlmedele. See tähendab, et sadam nr. 4200 klastri mis tahes sõlmel / halduril muudab nurkarakenduse.

Mis nüüd? Kas konteiner on aktiivne?

Dockeri teenuste loendi käsu abil saate kontrollida, kas teenus on konteinerites. Kuid konteineri juurutamiseks võib kuluda minut. Allpool on käsk:

$ dokkimisteenus ls

See käsk loetleb kõik Swarmi klastri hallatavad teenused. Meie juhul peaks see kuvama ühe aktiivse konteineri. Vaadake viitamiseks allolevat ekraanipilti.

Siin näitab “REPLICAS = 1/1”, et klastris on selle konteineri kohta üks teenus. Ja „MODE = replikatsioon” näitab, et teenust kopeeritakse kõikides klastri sõlmedes.

Nüüd, et tuvastada, millist sõlme / haldurit, rakendust hostitakse, saame käivitada käsu dokkimisteenuse ps käsk, millele järgneb konteineri nimi. Käsk on:

$ dockeri teenus ps Angular-App-Container

Sama ekraanipilt on allpool.

See mainib üksikasju sõlme kohta, kus rakendust hostitakse, koos käsklusega, mida kasutatakse teenuse käivitamiseks.

Käsk ‘docker ps’ heidab valgust aktiivse konteineri üksikasjadele. Käsk on:

$ dokkija ps

Vaadake viitamiseks allolevat ekraanipilti.

Kuid see käsk töötab ainult klastrihalduris ja sõlmes, kus teenust tegelikult hostitakse.

Töötavate sõlmede kontrollimiseks käivitage käsk sõlmede loend. Käsk on:

$ dokkija sõlm ls

Konkreetses hostis töötavate konteinerite kontrollimiseks käivitage käsk node ps. Käsk on:

$ dokkija sõlm ps

Kui mäletate, mainisin varem, et teenus töötab praegu paljundatud režiimis. See tähendab, et teenust kopeeritakse kõikides klastrite sõlmedes. Kas teie arvates on alternatiiv?

Absoluutselt! On midagi, mida nimetatakse globaalseks režiimiks. Selles režiimis töötab selle konteineri teenus klastri iga üksiku / halduri juures. Ärge unustage enne uue konteinerikomplekti keerutamist praegune teenus / konteiner peatada.

Selle jaoks on käsk:

$ dockeri teenus rm Angular-App-Container

Konteiner globaalses režiimis keerutamiseks on järgmine:

Teenus $ docker create --name 'Angular-App-Container' -p 4200: 4200 --mode globaalne nurgapilt

See looks meie klastri kolmes sõlmes 3 teenust. Seda saate kontrollida, käivitades käsu dokeri teenuseloendi. Selle ekraanipilt on allpool.

Dockeri teenuse ps käsu käivitamisel näete midagi sellist:

Nagu näete, ütleb see, et režiim on paljundatud ja selle konteineri koopiad on 3. Nüüd tuleb selle blogi parim osa.

Kolme konteineri vahel töötab 2 teenuse koopiat, saame kasutada koopiate lippu. Vaadake allolevat käsku:

Teenus $ docker create --name 'Angular-App-Container' -p 4200: 4200 --replicas = 2 nurgapilt

Märkate, et need 2 teenust on klastri kolme sõlme vahel koormusega tasakaalus. Kontrollige, millistes sõlmedes konteinerid on aktiivsed, käivitage dokkija teenuse käsk. Vaadake viitamiseks allolevat ekraanipilti. Konteinerid on aktiivsed ühes haldurisõlmes ja ühes töölisesõlmes.

Töötaja sõlmest saate kontrollida, kas konteiner töötab, käivitades käsu ‘docker ps’.

Dockeri sülem kõrge kättesaadavuse tagamiseks

Nüüd, et kontrollida, kas meie klastris on palju saadavust, peame kogema stsenaariumi, kus üks sõlmedest läheb alla ja teised klastri sõlmed selle korvavad. Selle stsenaariumi saavutamiseks peatame konteineri käsitsi ühest sõlmest selle käsu abil:

$ docker stop Angular-App-Container

Käivitage sõlmel ülaltoodud käsk: Worker-1, kus konteiner töötab.Haldurist käivitage käsk:

$ dockeri teenus ps Angular-App-Container

Nüüd märkate, et konteiner töötab nüüd sõlmes: Worker-2 ja Manager. Kuid see on sõlmest sõlmitud: Worker-1. Sama on nähtav allolevalt ekraanipildilt.

HTML-tabel tabelis

See on nii Dockeri kõrge kättesaadavus on saavutatud. Minan Vaatamata sellele, et konteiner pole töölises 1 töövõimeline, saab rakenduse selle töösõlme porti number 4200 renderdada. Seda seetõttu, et see on sisemiselt ühendatud klastri teiste sõlmedega ja suudab rakendust brauseris renderdada.

Kõrge kättesaadavus pärast teenuste suurendamist

Olgu see siis replitseeritud režiimis või globaalses režiimis, saame oma klastris töötavate teenuste arvu suurendada. Ja isegi pärast suurendamist suudame säilitada kõrge kättesaadavuse. Äge, kas pole?

Kuid pöördudes tagasi oma punkti juurde, vaatame, kui lihtne on meie klastri teenuste arvu suurendada. Eeldades, et meie klastris on kas 2 või 3 koopiat, suurendagem teenuseid viieni, käivitades lihtsalt ühe käsu. Käsk on:

teenindusskaala $ docker Angular-App-Container = 5

Selle ekraanipilt on allpool.

Dockeri teenuseloendi käsu käivitamisel võite märgata, et koopiate arv on nüüd 5. Ja käivitades käsu docker service ps koos teenuse nimega, näete, kuidas 5 teenust on koormuses tasakaalustatud ja jaotatud 3 sõlme . Käsud on:

teenus $ dockeri teenus ls $ dockeri teenus ps Angular-App-Container

Ja lõpuks, kui te ei soovi Docker Swarmi seadistuses, et teie juht protsessis osaleb ja hoiate seda ainult protsesside haldamise huvides, siis võime juhi tühistada mis tahes rakenduse majutamisest. Sest nii see maailmas töötab, kas pole? Juhid on mõeldud ainult teiste töötajate juhtimiseks. Igatahes on käsk seda teha:

$ dockeri sõlme värskendus - kättesaadavuse äravooluhaldur-1

Saate kontrollida, kas haldur osaleb nüüd klastris, käivitades käsu Dockeri sõlmede loend ja dokkimisteenuse ps käsk:

$ dockeri sõlm ls $ dockeri teenus ps Angular-App-Container

Nüüd võite märgata, et konteinerteenused on jaotatud töölissõlmede vahel ja haldurisõlm on tegelikult tühistatud mis tahes teenuse konteinerisse lisamisest. Ekraanipilt on allpool.

Nii et see lõpetab selle ajaveebi Docker Swarmis. Loodan, et see ajaveeb selgitas, kui oluline on Swarm-režiimi juurutamine kõrge kättesaadavuse saavutamiseks. Olge kursis selle Dockeri õpetussarja uute ajaveebidega.

Võite ka vaadata allolevat videot, et mõista, kuidas Docker Swarm töötab. Kõik eespool selgitatud mõisted on videos kajastatud.

Dockeri sülem kõrge kättesaadavuse jaoks Dockeri õpetus | DevOpsi õpetus

Nüüd, kui olete Dockeri kohta teada saanud, vaadake järgmist autor Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik koosneb enam kui 250 000 rahulolevast õppijast ja mis levib üle kogu maailma. See Edureka Dockeri sertifitseerimiskoolitus aitab õppijatel omandada teadmisi Dockeri juurutamise ja selle valdamise kohta.

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ja võtame teiega ühendust.