Uvod u arhitekturu Docker Swarm
Docker Swarm je alat za grupiranje i orkestraciju kontejnera koji je ugrađen u Docker Engine za distribuirani sustav koji uključuje stotine kontejnera. Zadaci Docker Node, Docker Services i Docker ključni su dijelovi arhitekture Docker roama.
- Docker čvor: instanca Docker Engine uključena u Docker roj, ima dvije vrste:
- Čvor upravitelja: odgovoran je za sve zadatke orkestracije i upravljanja spremnicima koji su potrebni za održavanje sustava u željenom stanju, kao što su održavanje stanja klastera, zakazivanje usluga i servisiranje krajnjih točaka HTTP načina rada u roju.
- Docker usluga: to je definicija zadatka koju treba izvršiti.
Tipična arhitektura rojeva Docker
Ispod su točke za tipičnu arhitekturu rojeva docker:
- Čvor je ključni član arhitekture rojeva dockera, arhitektura roja može imati više upravljačkih čvorova koje vodi jedan čvor menadžera izabran pomoću algoritma Raft, a čvor menadžera može raditi i kao radnički čvor, ali može biti konfiguriran za rad kao upravitelj čvor također.
- Čvorovi upravitelja koriste algoritam Raft Consensus Algoritam za interno upravljanje stanjem klastera. Time se osigurava da svi čvorovi upravitelja koji planiraju i kontroliraju zadatke u klasteru održavaju / pohranjuju dosljedno stanje.
- Roj je skupina docker motora ili čvorova na kojoj raspoređujemo naše usluge. U ranoj je fazi Docker došao do sustava upravljanja klasterima s komunikacijskim protokolom poznatim kao Beam. Kasnije su dodali još API-ja i preimenovali ga u roj. Roj prve generacije naziva se 'roj v1'.
Radni tijek Docker roja
Tok rada dokerskog roja sastoji se od razumijevanja funkcioniranja čvorova i usluga u arhitekturi docker roama:
Korak 1: Prvi korak je kreiranje skupa docker-machine koji će djelovati kao čvorovi u docker rovu , jedan od tih čvorova će biti upravitelj, preostali čvor će djelovati kao radnički čvorovi. Za stvaranje docker-stroja koristite naredbu u sustavu Windows, pokrenite docker terminal.
docker-machine create –driver hyperv manager1
- Gdje je 'manager1' naziv docker-machine imena, na popisu strojeva koji se pokreću.
docker-machine ls
docker-machine ip manager1
2. korak: Drugi korak je stvaranje radničkih strojeva, upotrijebite naredbu ispod za stvaranje onoliko koliko radni strojevi želite, ovdje napravimo 3 radnika.
docker-machine create –driver hyperv worker1
docker-machine create –driver hyperv worker2
docker-machine create –driver hyperv worker3
- Možemo se povezati s upraviteljem ili radnikom pomoću naredbe u nastavku, koja će vas dovesti do stroja.
docker-machine ssh manager1/worker1
Korak 3: Treći korak je inicijalizacija roja doktora, tu naredbu moramo izvesti na stroju na kojem želimo raditi kao upravitelj, to je način na koji stvaramo upravitelja čvorova, a možemo dodati i više menadžera.
docker-machine ssh manager1
docker swarm init –advertise-and Manager1 IP
Korak 4: Četvrti korak je pridružiti se radničkim čvorovima za rojenje, dobiti naredbu da se pridružite čvoru kao radnik koristeći naredbu ispod na upravljačkom stroju i pokrenite naredbu koju ste dobili na radničkom stroju koji želite napraviti radnikom.
Docker swarm join-token worker1
- Da biste provjerili je li radnik pridružen roju ili ne ide rukovoditelju i pokreće naredbu, popisat će dodani stroj radnika s pojedinostima menadžera.
docker-machine ls
5. korak: Peti korak je pokretanje standardnih naredbi docker-a na upravitelju.
docker info (fetches details about docker swarm)
docker swarm (commands that can run on docker swarm such as join, leave, update, init and unlock etc)
Korak 6: Korak šest je pokrenuti docker kontejnere na docker roju, možemo stvoriti bilo koju uslugu i to replike. Idite na ub.docker.com, prijavite se i idite istraživati podružnice možemo vidjeti različite slike koje su motori, na primjer, nginx (radi na web serveru) stvara uslugu, a replika je pomoću naredbe ispod na upravitelju.
docker service create –replicas 3 -p 80:80 –name sample nginx
- Gdje je 'uzorak' naziv usluge i 80 je port koji se izlaže radi provjere statusa usluge pokrenite ispod naredbe na čvoru upravitelja.
docker service ls
docker service ps sample
Provjerite uslugu koja se izvodi na svim čvorovima i također provjerite u pregledniku dajući IP za sve čvorove.
Korak 7: Korak sedmi, sada možemo vidjeti stvarnu uporabu rova dokera gdje povećavamo uslugu gore i dolje. Da biste skalirali uslugu, pokrenite naredbu ispod na upravljačkom računalu
docker service scale sample=4
- Gornja naredba natjeraće da se uzorak usluge izvodi na 4 čvora, iako su svi čvorovi zauzeti, to će stvoriti drugu uslugu za upravitelja ili radnika. Na sličan način možemo smanjiti uslugu.
docker service scale sample=2
- Također možemo pregledati čvor kako bismo dobili pojedinosti poput broja i koja se usluga izvodi na čvoru pokretanjem narednih naredbi na čvoru upravitelja
docker node inspect worker1/manager1
docker node inspect self
Korak 8: Osmi korak je ažuriranje usluge kada se servis pokreće na više strojeva, a ako želimo ažurirati uslugu, vrlo je i jednostavan, na primjer, ako želimo ažurirati verziju usluge nginx.
docker service update –image nginx:1.14.0 sample
9. korak: Isključivanje / zaustavljanje / uklanjanje.
- Za isključivanje bilo kojeg određenog čvora koristite naredbu ispod, koja status čvora mijenja u 'odvod'.
docker node update –availability drain worker1
- Za uklanjanje usluge sa svih strojeva.
docker service rm sample
- Napustiti roj, što mijenja status 'dolje'.
docker swarm leave
- Za zaustavljanje stroja (Pokreni se s terminala doktora, a ne u upravljaču ili radničkom stroju).
docker-machine stop worker1
docker-machine rm worker1
Prednosti arhitekture Docker Swarm
Ispod su točke prikazane prednosti Docker Swarm arhitekture:
- Decentralizirani dizajn: možemo upravljati grozdovima grozdova pomoću naredbe roj, To daje jedan p (oint pristup za izgradnju cijelog roja.
- Vrlo je jednostavno u usporedbi s Kubernetesom.
- Velika dostupnost: Među čvorovima koji su dostupni u roju ako master ne uspije, drugi čvor radnik naplatit će se.
- Željeno stanje Pomirenje: upravitelj rojeva prati stanje grozda tako da je željeno i stvarno stanje uvijek isto.
- Kad odredimo nadmrežnu mrežu za povezivanje s vašim uslugama, upravitelj rojeva dodjeljuje adrese spremniku na mreži s preklapanjem nakon što kreiramo / ažuriramo spremnike
- Ažuriranje ažuriranja: ažuriranja usluga mogu se obavljati postupno, upravitelj rojeva omogućava vam da odredite odgodu između svakog ažuriranja bez ikakvih prekida rada.
Zaključak
Docker roj je jednostavan alat umjesto velikih alata koji ispunjavaju zadatak, Docker s rojem pruža orkestraciju koja nam je potrebna, lako je postaviti i isporučiti domaće pomoću docker motora koji ćemo ionako instalirati i koristiti.
Preporučeni članci
Ovo je vodič za Docker Swarm arhitekturu. Ovdje smo razgovarali o tome kako čvorovi i usluge djeluju u arhitekturi docker rove sa njihovim prednostima. Možete i pregledati naše druge povezane članke da biste saznali više -
- Docker arhitektura
- Što je Docker Swarm?
- Roj obavještajne aplikacije
- Da li tehnologija plivanja pomaže agilnim timovima da rastu?