Docker Swarm Architecture - Hvordan fungerer noder og tjenester?

Indholdsfortegnelse:

Anonim

Introduktion til Docker Swarm Architecture

Docker Swarm er et klynge- og orkestreringsværktøj til containere, der er indbygget i Docker Engine til det distribuerede system, der involverer hundredvis af containere. Docker-node-, Docker-tjenester og Docker-opgaver er nøglekomponenter i Docker-sværmearkitekturen.

  • Docker-knudepunkt: Det er Docker Engine-forekomsten, der er inkluderet i Docker-sværmen, har to slags:
  • Manager-knudepunkt: Ansvarlig for alle orkestrerings- og containerstyringsopgaver, der kræves for at opretholde systemet i den ønskede tilstand, f.eks. Vedligeholdelse af klyngestatus, planlægning af tjenester og service af sværmtilstandens HTTP-endepunkter.
  • Docker Service: Det er opgavedefinitionen, der skal udføres.

Typisk Docker Swarm Arkitektur

Nedenfor er punkterne for typisk docker-sværmsarkitektur:

  • Knudepunkt er nøglemedlemmet i docker-sværmearkitektur, en sværmearkitektur kan have mere end et managerknudepunkt ledet af en enkelt managerknude valgt ved hjælp af Raft-algoritmen, en managerknudepunkt kan også fungere som en arbejderknudepunkt, men kan konfigureres til at fungere som manager node også.
  • Manager-noder bruger Raft Consensus Algorithm til internt at styre klyngestatus. Dette er for at sikre, at alle lederknudepunkter, der planlægger og kontrollerer opgaver i klyngen, opretholder / gemmer ensartet tilstand.
  • En sverm er en klynge med Docker-motorer eller -knudepunkter, hvor vi implementerer vores tjenester. På det tidlige stadium kom Docker med et klyngestyringssystem med en kommunikationsprotokol, der kaldes Beam. Senere tilføjede de flere API'er og omdøbte det til at sverme. Den første generations sværm kaldes 'sverm v1'.

Arbejdsflow af Docker Swarm

Arbejdsgangen til docker-sværm består i at forstå, hvordan noder og tjenester fungerer i en docker-sværmsarkitektur:

Trin 1: Det første trin er at oprette et sæt docker-maskine, der fungerer som knudepunkter i docker-sværmen , en blandt disse noder er manageren, de resterende knudepunkter fungerer som arbejderknudepunkter. For at oprette en docker-maskine skal du bruge kommandoen på Windows ved at starte dockerterminalen.

docker-machine create –driver hyperv manager1

  • Hvor 'manager1' er docker-maskinnavnet, for at liste henholdsvis maskinerne og det køres.

docker-machine ls
docker-machine ip manager1

Trin 2: Det andet trin er at oprette arbejdsmaskiner, brug kommandoen nedenfor til at oprette så meget som arbejdsmaskiner du ønsker, her lad os oprette 3 arbejdstagere.

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

  • Vi kan oprette forbindelse til manageren eller arbejdstageren ved hjælp af nedenstående kommando, som får dig til at komme ind i maskinen.

docker-machine ssh manager1/worker1

Trin 3: Trin tre er at initialisere docker-sværmen, vi er nødt til at køre denne kommando på den maskine, som vi vil have arbejde som manager, det er sådan, hvordan vi laver nodeadministrator, vi kan også tilføje flere ledere.

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

Trin 4: Trin fire er at slutte sig til arbejderknudene til at sværme, få kommandoen til at slutte sig til knudepunktet som en arbejder ved hjælp af kommandoen nedenfor på managermaskinen og køre den kommando, du har på den arbejdsmaskine, du vil oprette en arbejdstager.

Docker swarm join-token worker1

  • For at kontrollere, om arbejderen er sammenføjet med at sverme eller ikke gå til managermaskinen og køre kommandoen, vises den tilføjede arbejdsmaskine med manageroplysninger.

docker-machine ls

Trin 5: Trin fem er at køre docker-standardkommandoer på manageren.

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)

Trin 6: Trin seks er at køre dockercontainere på docker-sværm, vi kan oprette enhver service, og det er kopier. Gå til ub.docker.com, log ind og gå til at udforske depositarer, vi kan se forskellige billeder, som er motorer, f.eks. Nginx (det kører på webserver) opretter en service, og det er replika ved hjælp af kommandoen nedenfor på manageren.

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

  • Hvor 'sample' er servicenavnet og 80 er den port, der udsættes for at kontrollere status for servicekørslen under kommandoen på managernoden.

docker service ls
docker service ps sample

Kontroller den service, der kører på alle noder, og tjek også browseren ved at give IP for alle noder.

Trin 7: Trin syv, nu kan vi se den faktiske brug af docker-sværm, hvor vi skalerer tjenesten op og ned. For at skalere en service skal du køre kommandoen nedenfor på managermaskinen

docker service scale sample=4

  • Ovenstående kommando får tjenesteprøven til at køre på 4 noder, selvom alle noder er optaget, vil den oprette en anden service på manager eller arbejdstager. På lignende måde kan vi nedskalere tjenesten.

docker service scale sample=2

  • Vi kan også inspicere noden for at få detaljerne, som hvor mange og hvilken service, der kører på en knude, ved at køre nedenstående kommandoer på managernoden

docker node inspect worker1/manager1
docker node inspect self

Trin 8: Trin otte er at opdatere service, når tjenesten kører på flere maskiner, og hvis vi ønsker at opdatere tjenesten, er det meget enkelt og enkelt, for eksempel hvis vi vil opdatere versionen af ​​tjenesten nginx.

docker service update –image nginx:1.14.0 sample

Trin 9: Luk / stopp / fjern.

  • For at lukke en bestemt knude skal du bruge kommandoen nedenfor, der ændrer status for noden til 'dræne'.

docker node update –availability drain worker1

  • Sådan fjernes service fra alle maskiner.

docker service rm sample

  • For at forlade sværmen, der ændrer status for 'ned'.

docker swarm leave

  • Sådan stopper du en maskine (Kør fra dockerterminal, ikke i manager eller arbejdermaskine).

docker-machine stop worker1
docker-machine rm worker1

Fordelene ved Docker Swarm Architecture

Nedenfor er punkterne viser fordelene ved Docker Swarm Architecture:

  1. Decentraliseret design: vi kan styre sværmklynger gennem sværmkommando, det giver enkelt p (salve af adgang til at bygge hele sværmen.
  2. Det er meget enkelt sammenlignet med Kubernetes.
  3. Høj tilgængelighed: Blandt de noder, der er tilgængelige i sværm, hvis master svigter, vil en anden arbejdskernepude tage opladning.
  4. Ønsket tilstand Afstemning: Sværmstyreren holder styr på klyngestatus, så den ønskede og faktiske tilstand altid er den samme.
  5. Når vi specificerer et over-netværk for at oprette forbindelse til dine tjenester, tildeler sværmeadministratoren adresser til containeren på overlay-netværket, når vi opretter / opdaterer containerne
  6. Rullende opdateringer: Serviceopdateringer kan udføres trinvist sværmstyring giver dig mulighed for at specificere forsinkelsen mellem hver opdatering uden nogen nedetid.

Konklusion

Docker-sværm er et simpelt værktøj i stedet for store værktøjer, der udfører opgaven, Docker med sværm giver orkestrering, som vi har brug for, det er let at konfigurere og sender den indbyggede med docker-motor, som vi alligevel skal installere og bruge.

Anbefalede artikler

Dette er en guide til Docker Swarm Architecture. Her diskuterer vi, hvordan knudepunkter og tjenester fungerer i en docker-sværmsarkitektur med deres fordele. Du kan også gennemgå vores andre relaterede artikler for at lære mere -

  1. Docker-arkitektur
  2. Hvad er Docker Swarm?
  3. Swarm Intelligence-applikationer
  4. Hjælper Swarming Technology agile hold med at vokse?