Docker Swarm Architecture - Jak fungují uzly a služby?

Obsah:

Anonim

Úvod do architektury Docker Swarm Architecture

Docker Swarm je klastrovací a orchestrační nástroj pro kontejnery zabudovaný v Docker Engine pro distribuovaný systém, který zahrnuje stovky kontejnerů. Uzly Docker, Docker Services a Docker jsou hlavními součástmi architektury roje Docker.

  • Uzel Docker: Jedná se o instanci Docker Engine zahrnutou do Docker roje, má dva druhy:
  • Uzel správce: Odpovědný za všechny úkoly spojené s orchestrací a správou kontejnerů, které jsou nezbytné k udržení systému v požadovaném stavu, jako je udržování stavu klastru, plánování služeb a údržba koncových bodů HTTP režimu roje.
  • Docker Service: Je to definice úlohy, kterou je třeba provést.

Typická Docker Swarm Architecture

Níže jsou uvedeny body typické architektury dokovacího roje:

  • Uzel je klíčovým členem architektury roje doků, architektura roje může mít více než jeden uzel správce vedený jedním uzlem správce zvoleným pomocí algoritmu Raft, uzel správce může také fungovat jako pracovní uzel, ale lze jej nakonfigurovat tak, aby fungoval jako správce uzel také.
  • Uzly správce používají algoritmus Raft Consensus Algorithm pro interní správu stavu klastru. Tím je zajištěno, že všechny uzly správce, které plánují a řídí úkoly v klastru, udržují / ukládají konzistentní stav.
  • Roj je shluk Dockerových motorů nebo uzlů, kde nasazujeme naše služby. V počáteční fázi přišel Docker se systémem správy clusterů s komunikačním protokolem známým jako Beam. Později přidali další API a přejmenovali je na roj. První generační roj se nazývá „roj v1“.

Work Flow of Docker Swarm

Pracovní postup ukotvení roje spočívá v porozumění toho, jak uzly a služby fungují v architektuře ukotvení rojů:

Krok 1: Prvním krokem je vytvoření sady docker-machine, která bude fungovat jako uzly v docker roju , jedním z těchto uzlů bude manažer, zbývající uzly budou fungovat jako pracovní uzly. Chcete-li vytvořit dokovací stroj, použijte příkaz ve Windows, spusťte dokovací terminál.

docker-machine create –driver hyperv manager1

  • Kde 'manager1' je jméno docker-machine, seznam strojů a jejich spuštění.

docker-machine ls
docker-machine ip manager1

Krok 2: Druhým krokem je vytvoření pracovních strojů, pomocí příkazu níže vytvořte tolik pracovních strojů, kolik chcete, zde vytvořme 3 pracovníky.

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

  • Můžeme se připojit ke správci nebo pracovníkovi pomocí níže uvedeného příkazu, který vás dostane dovnitř stroje.

docker-machine ssh manager1/worker1

Krok 3: Krokem 3 je inicializace roje doku, musíme spustit tento příkaz na počítači, který chceme pracovat jako správce, proto vytvoříme správce uzlů, můžeme také přidat více správců.

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

Krok 4: Krok 4 je připojit se k pracovním uzlům, aby se rojil, získat příkaz k připojení uzlu jako pracovník pomocí příkazu níže na stroji správce a spustit příkaz, který máte na pracovním stroji, který chcete učinit pracovníkem.

Docker swarm join-token worker1

  • Chcete-li zkontrolovat, zda je pracovník připojen k roji nebo nechodit do řídícího stroje a spustit příkaz, zobrazí seznam přidaného pracovního stroje s podrobnostmi správce.

docker-machine ls

Krok 5: Krokem 5 je spuštění standardních příkazů docker ve správci.

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: Krok 6 je spuštění dokovacích kontejnerů na dokovací roj, můžeme vytvořit jakoukoli službu a její repliky. Jděte na ub.docker.com, přihlaste se a prozkoumejte depozitáře, kde vidíme různé obrázky, které jsou motory, například nginx (běží na webovém serveru) vytváří službu a její replika používá níže uvedený příkaz ve správci.

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

  • Kde 'sample' je název služby a 80 je port, který je vystaven, aby zkontroloval stav příkazu run run under v uzlu správce.

docker service ls
docker service ps sample

Zkontrolujte službu běžící na všech uzlech a také v prohlížeči zadejte IP všem uzlům.

Krok 7: Krok 7, nyní vidíme skutečné využití dokovacího roje, kde rozšiřujeme službu nahoru a dolů. Chcete-li změnit měřítko služby, spusťte níže uvedený příkaz na stroji správce

docker service scale sample=4

  • Výše uvedený příkaz způsobí, že služba bude spuštěna na 4 uzlech, i když jsou všechny uzly zaneprázdněny, vytvoří další službu pro správce nebo pracovníka. Podobným způsobem můžeme službu snížit.

docker service scale sample=2

  • Můžeme také zkontrolovat uzel a zjistit podrobnosti, například kolik a která služba běží v uzlu spuštěním příkazů níže v uzlu správce

docker node inspect worker1/manager1
docker node inspect self

Krok 8: Krok 8 je aktualizace služby, když je služba spuštěna na více počítačích, a pokud chceme službu aktualizovat, je velmi jednoduchá, například pokud chceme aktualizovat verzi služby nginx.

docker service update –image nginx:1.14.0 sample

Krok 9: Vypnutí / zastavení / odebrání.

  • Chcete-li vypnout jakýkoli konkrétní uzel, použijte příkaz níže, který změní stav uzlu na „odtok“.

docker node update –availability drain worker1

  • Chcete-li odebrat službu ze všech strojů.

docker service rm sample

  • Chcete-li opustit roj, který mění stav 'dolů'.

docker swarm leave

  • Zastavení stroje (Spouštět z dokovacího terminálu, nikoli ve správci nebo v pracovním stroji).

docker-machine stop worker1
docker-machine rm worker1

Výhody architektury Docker Swarm Architecture

Níže jsou uvedeny body, které ukazují výhody architektury Docker Swarm Architecture:

  1. Decentralizovaný design: dokážeme spravovat klastry rojů pomocí příkazu roj, dává to jediné p (oint přístupu k sestavení celého roje.
  2. Ve srovnání s Kubernetes je to velmi jednoduché.
  3. Vysoká dostupnost: Mezi uzly, které jsou k dispozici v rojích, pokud selže hlavní server, nabije další pracovní uzel.
  4. Požadované smíření stavu: Správce rojů sleduje stav klastru, takže požadovaný a skutečný stav je vždy stejný.
  5. Když určíme přes síť pro připojení k vašim službám, správce rojů přiřadí adresy kontejneru v překryvné síti, jakmile vytvoříme / aktualizujeme kontejnery
  6. Rolling Updates: Aktualizace služeb lze provádět inkrementálně swarm manager umožňuje určit zpoždění mezi každou aktualizací bez jakýchkoli prostojů.

Závěr

Docker roj je jednoduchý nástroj namísto velkých nástrojů, které splňují úkol, Docker s rojem zajišťuje orchestraci, kterou potřebujeme, snadno se nastavuje a rodák se dodává s dockerovým motorem, který se přesto chystáme nainstalovat a použít.

Doporučené články

Toto je průvodce architekturou Docker Swarm Architecture. Zde diskutujeme o tom, jak uzly a služby fungují v dokovací rojové architektuře s jejich výhodami. Další informace naleznete také v dalších souvisejících článcích -

  1. Docker Architecture
  2. Co je Docker Swarm?
  3. Swarm Intelligence Applications
  4. Pomáhá technologie Swarming Agile týmům růst?