Docker Swarm Architecture Ako fungujú uzly a služby?

Obsah:

Anonim

Úvod do architektúry Docker Swarm Architecture

Docker Swarm je klastrovací a orchestračný nástroj pre kontajnery, ktorý je zabudovaný v Docker Engine pre distribuovaný systém, ktorý zahŕňa stovky kontajnerov. Uzly Docker, Docker Services a Docker úlohy sú kľúčovými komponentmi architektúry rojov Docker.

  • Uzol Docker: Je to inštancia Docker Engine zahrnutá v roji Docker, má dva druhy:
  • Uzol manažéra: Zodpovedný za všetky úlohy orchestrácie a správy kontajnerov, ktoré sú potrebné na udržanie systému v požadovanom stave, ako je udržiavanie stavu klastra, plánovanie služieb a údržba koncových bodov HTTP režimu roja.
  • Docker Service: Je potrebné vykonať definíciu úlohy.

Typická architektúra roja roja

Nižšie sú uvedené body typickej dokovacej architektúry roja:

  • Uzol je kľúčovým členom architektúry rojového doku, architektúra roja môže mať viac ako jeden uzol manažéra vedený jedným uzlom manažéra zvoleným pomocou algoritmu Raft, uzol manažéra môže tiež fungovať ako pracovný uzol, ale môže byť nakonfigurovaný tak, aby pracoval ako manažér uzol.
  • Uzly manažéra používajú algoritmus Raft Consensus Algorithm na internú správu stavu klastra. Tým sa zabezpečí, že všetky uzly manažéra, ktoré plánujú a kontrolujú úlohy v klastri, udržiavajú / ukladajú konzistentný stav.
  • Roj je klaster dokovacích motorov alebo uzlov, v ktorých zavádzame naše služby. V počiatočnom štádiu prišiel Docker so systémom riadenia klastrov s komunikačným protokolom známym ako Beam. Neskôr pridali ďalšie API a premenovali ich na roj. Prvá generácia roja sa nazýva 'roj v1'.

Work Flow of Docker Swarm

Pracovný tok ukotvenia roja spočíva v porozumení toho, ako uzly a služby fungujú v architektúre ukotvenia roja:

Krok 1: Prvým krokom je vytvorenie sady dokovacích strojov, ktoré budú pôsobiť ako uzly v dokovom roji , jedným z týchto uzlov bude manažér, zostávajúce uzly budú fungovať ako pracovné uzly. Ak chcete vytvoriť dokovací stroj, použite príkaz v systéme Windows, spustite dokovací terminál.

docker-machine create –driver hyperv manager1

  • Kde 'manager1' je názov docker-machine, zoznam strojov a ich spustenie.

docker-machine ls
docker-machine ip manager1

Krok 2: Druhým krokom je vytvorenie pracovných strojov, pomocou príkazu nižšie vytvorte toľko pracovných strojov, koľko chcete, vytvorme teda 3 pracovníkov.

docker-machine create –driver hyperv worker1
docker-machine create –driver hyperv worker2
docker-machine create –driver hyperv worker3

  • Môžeme sa spojiť s manažérom alebo pracovníkom pomocou príkazu nižšie, ktorý vás zavedie dovnútra zariadenia.

docker-machine ssh manager1/worker1

Krok 3: Tretí krok je inicializácia roja dock, musíme spustiť tento príkaz na počítači, ktorý chceme pracovať ako správca, preto vytvoríme správcu uzlov, môžeme pridať aj ďalších správcov.

docker-machine ssh manager1
docker swarm init –advertise-and Manager1 IP

Krok 4: Krok 4 je pripojiť sa k pracovným uzlom, aby sa rojil, získajte príkaz na pripojenie sa k uzlu ako pracovník pomocou príkazu nižšie na stroji manažéra a spustite príkaz, ktorý ste dostali na pracovnom stroji, ktorý chcete urobiť pracovníkom.

Docker swarm join-token worker1

  • Ak chcete skontrolovať, či je pracovník pripojený k roju alebo nie, prejdite na stroj správcu a spustite príkaz, zobrazí zoznam pridaného pracovníka s podrobnosťami o manažérovi.

docker-machine ls

Krok 5: Krok 5 je spustenie štandardných príkazov doku v správcovi.

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)

Krok 6: Šiestym krokom je spustenie dokovacích kontajnerov v dokovom roji, môžeme vytvoriť akúkoľvek službu a jej repliky. Prejdite na stránku ub.docker.com, prihláste sa a preskúmajte depozitárov, aby sme videli rôzne obrázky, ktoré sú motormi, napríklad nginx (beží na webovom serveri) vytvára službu a jej repliky sa používa pod príkazom manažéra.

docker service create –replicas 3 -p 80:80 –name sample nginx

  • Kde „sample“ je názov služby a 80 je port, ktorý je vystavený na kontrolu stavu príkazu na spustenie služby v uzle správcu.

docker service ls
docker service ps sample

Skontrolujte službu bežiacu na všetkých uzloch a skontrolujte aj prehľadávač zadaním adresy IP pre všetky uzly.

Krok 7: Krok sedem, teraz vidíme skutočné využitie dokového roja, kde rozširujeme službu nahor a nadol. Ak chcete zmeniť mierku služby, spustite príkaz nižšie na stroji manažéra

docker service scale sample=4

  • Vyššie uvedený príkaz urobí vzorku služby tak, aby bežala na 4 uzloch, hoci všetky uzly sú zaneprázdnené, vytvorí ďalšiu službu pre manažéra alebo pracovníka. Podobným spôsobom môžeme službu zmenšiť.

docker service scale sample=2

  • Môžeme tiež skontrolovať uzol, aby sme získali podrobnosti, napríklad koľko a ktoré služby sú v uzle spustené, spustením príkazov uvedených nižšie v uzle správcu.

docker node inspect worker1/manager1
docker node inspect self

Krok 8: Krok 8 je aktualizácia služby, keď je služba spustená na viacerých počítačoch, a ak chceme službu aktualizovať, je veľmi jednoduchá, napríklad ak chceme aktualizovať verziu služby nginx.

docker service update –image nginx:1.14.0 sample

Krok 9: Vypnutie / zastavenie / odstránenie.

  • Na vypnutie ktoréhokoľvek konkrétneho uzla použite príkaz uvedený nižšie, ktorý zmení stav uzla na „odtok“.

docker node update –availability drain worker1

  • Odstránenie servisu zo všetkých strojov.

docker service rm sample

  • Ak chcete opustiť roj, ktorý zmení stav 'dole'.

docker swarm leave

  • Zastavenie stroja (Spustiť z dokovacieho terminálu, nie zo správcovského alebo pracovného stroja).

docker-machine stop worker1
docker-machine rm worker1

Výhody architektúry Docker Swarm Architecture

Nižšie sú uvedené body, ktoré ukazujú výhody architektúry Docker Swarm Architecture:

  1. Decentralizovaný dizajn: môžeme ovládať zoskupenia rojov pomocou príkazu roj. Poskytuje jediný p (prístup k vytvoreniu celého roja).
  2. V porovnaní s Kubernetesom je to veľmi jednoduché.
  3. Vysoká dostupnosť: Medzi uzlami dostupnými v roji, ak zlyhá hlavná stanica, sa nabije ďalší pracovný uzol.
  4. Zosúladenie požadovaného stavu: Manažér rojov sleduje stav klastra tak, aby požadovaný a skutočný stav bol vždy rovnaký.
  5. Keď určíme sieť na pripojenie k vašim službám, správca rojov priraďuje adresy kontajneru v prekryvnej sieti, keď vytvoríme / aktualizujeme kontajnery
  6. Rolling Updates: Aktualizácie služieb je možné vykonávať postupne, swarm manager vám umožňuje určiť oneskorenie medzi každou aktualizáciou bez akýchkoľvek prestojov.

záver

Docker swarm je jednoduchý nástroj namiesto veľkých nástrojov, ktoré plnia úlohu. Docker with swarm poskytuje orchestráciu, ktorú potrebujeme, je ľahké ju nastaviť a odoslať rodáka s dockerovým motorom, ktorý sa napriek tomu chystáme nainštalovať a používať.

Odporúčané články

Toto je sprievodca architektúrou Docker Swarm Architecture. Tu diskutujeme o tom, ako uzly a služby fungujú v architektúre roje doku s ich výhodami. Viac informácií nájdete aj v ďalších súvisiacich článkoch -

  1. Docker Architecture
  2. Čo je Docker Swarm?
  3. Aplikácie rojovej inteligencie
  4. Pomáha technológia rojenia agilným tímom rásť?