Docker Swarm Architecture - Hvordan fungerer noder og tjenester?

Innholdsfortegnelse:

Anonim

Introduksjon til Docker Swarm Architecture

Docker Swarm er et klynge- og orkestreringsverktøy for containere som er innebygd i Docker Engine for det distribuerte systemet som involverer hundrevis av containere. Docker-node-, Docker-tjenester og Docker-oppgaver er nøkkelkomponenter i Docker-svermarkitekturen.

  • Docker Node: Det er Docker Engine-forekomsten som er inkludert i Docker-svermen, har to typer:
  • Manager Node: Ansvarlig for alle orkestrasjons- og containerstyringsoppgaver som kreves for å opprettholde systemet i ønsket tilstand, for eksempel å opprettholde klyngestatusen, planlegge tjenestene og utføre service på svermmodus HTTP-endepunkter.
  • Docker Service: Det er oppgavedefinisjonen som må utføres.

Typisk Docker Swarm Architecture

Nedenfor er poengene for typisk arkitektur for docker-sverm:

  • Node er nøkkelmedlemmet i docker-svermarkitektur, en svermarkitektur kan ha mer enn én ledernoder ledet av en enkelt ledernode valgt med Raft-algoritmen, en ledernode kan også fungere som en arbeidsknute men kan konfigureres til å fungere som manager node også.
  • Manager-noder bruker Raft Consensus Algorithm for å administrere klyngestaten internt. Dette for å sikre at alle ledernoder som planlegger og kontrollerer oppgaver i klyngen, opprettholder / lagrer konsistent tilstand.
  • En sverm er en klynge av Docker-motorer eller -noder, der vi distribuerer tjenestene våre. På det tidlige stadiet kom Docker opp med et klyngestyringssystem med en kommunikasjonsprotokoll kjent som Beam. Senere la de til flere API-er og omdøpte den til å sverme. Den første generasjons svermen kalles 'sverm v1'.

Arbeidsflyt av Docker Swarm

Arbeidsflyten for docker-sverm består i å forstå hvordan noder og tjenester fungerer i en docker-sverm-arkitektur:

Trinn 1: Det første trinnet er å lage et sett med docker-maskin som vil fungere som noder i docker-svermen , en av disse nodene vil være manageren, de resterende nodene vil fungere som arbeidstakernoder. For å lage en docker-maskin bruker du kommandoen på Windows, starter docker-terminalen.

docker-machine create –driver hyperv manager1

  • Hvor 'manager1' er navnet på docker-maskinen, for å liste opp maskinene og det kjøres.

docker-machine ls
docker-machine ip manager1

Trinn 2: Det andre trinnet er å lage arbeidermaskiner, bruk kommandoen nedenfor for å lage så mye som arbeidermaskiner du ønsker, her la oss lage 3 arbeidere.

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

  • Vi kan koble deg til lederen eller arbeideren ved å bruke kommandoen nedenfor, som får deg til å komme inn i maskinen.

docker-machine ssh manager1/worker1

Trinn 3: Trinn tre er å initialisere docker-svermen, vi må kjøre denne kommandoen på maskinen som vi vil ha arbeid som manager, det er hvordan vi lager node manager, vi kan legge til flere ledere også.

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

Trinn 4: Trinn fire er å bli med i arbeiderknudene for å sverme, få kommandoen til å bli med i knutepunktet som en arbeider ved å bruke kommandoen nedenfor på ledermaskinen og kjøre kommandoen du har på arbeidermaskinen du vil lage en arbeider.

Docker swarm join-token worker1

  • For å sjekke om arbeidstakeren er slått sammen for å sverme eller ikke gå til ledermaskinen og kjøre kommandoen, vil den vise den arbeidermaskinen som er lagt til med lederinformasjonen.

docker-machine ls

Trinn 5: Trinn fem er å kjø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)

Trinn 6: Trinn seks er å kjøre dockercontainere på docker-svermen, vi kan opprette hvilken som helst tjeneste og det er kopier. Gå til ub.docker.com, logg inn og gå til å utforske depositarer, vi kan se forskjellige bilder som er motorer, for eksempel, nginx (det kjøres på webserver) oppretter en tjeneste og det er kopier ved å bruke kommandoen nedenfor på manageren.

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

  • Der 'sample' er tjenestenavnet og 80 er porten som blir utsatt for å sjekke statusen til tjenestekjøringen under kommandoen på ledernoden.

docker service ls
docker service ps sample

Sjekk tjenesten som kjører på alle noder, og sjekk også nettleseren ved å oppgi IP for alle noder.

Trinn 7: Trinn syv, nå kan vi se den faktiske bruken av dokkersverm der vi skalerer tjenesten opp og ned. For å skalere en tjeneste, kjør kommandoen nedenfor på manager-maskinen

docker service scale sample=4

  • Kommandoen over vil gjøre at tjenesteprøven kjører på 4 noder, selv om alle nodene er opptatt, vil det opprette en annen tjeneste på manager eller arbeider. På samme måte kan vi nedskalere tjenesten.

docker service scale sample=2

  • Vi kan også inspisere noden for å få detaljer som hvor mange og hvilken tjeneste som kjører på en node ved å kjøre kommandoene nedenfor på ledernoden.

docker node inspect worker1/manager1
docker node inspect self

Trinn 8: Trinn åtte er å oppdatere tjenesten når tjenesten kjøres på flere maskiner, og hvis vi ønsker å oppdatere tjenesten er den veldig enkel og enkel, for eksempel hvis vi vil oppdatere versjonen av tjenesten nginx.

docker service update –image nginx:1.14.0 sample

Trinn 9: Slå av / stopp / fjern.

  • For å slå av en bestemt node, bruk kommandoen nedenfor, som endrer statusen til noden til 'tappe'.

docker node update –availability drain worker1

  • For å fjerne service fra alle maskiner.

docker service rm sample

  • For å forlate svermen, som endrer statusen til "ned".

docker swarm leave

  • For å stoppe en maskin (Kjør fra dockerterminal, ikke i manager eller arbeider maskin).

docker-machine stop worker1
docker-machine rm worker1

Fordelene med Docker Swarm Architecture

Nedenfor er poengene som viser fordelene med Docker Swarm Architecture:

  1. Desentralisert design: vi kan administrere svermklynger gjennom svermkommando, det gir enkelt p (salve med tilgang til å bygge hele svermen.
  2. Det er veldig enkelt sammenlignet med Kubernetes.
  3. Høy tilgjengelighet: Blant nodene som er tilgjengelige i svermen hvis master mislykkes, vil en annen arbeidernode ta oppladning.
  4. Ønsket tilstand Avstemming: Svermebehandleren holder rede på klyngestatusen slik at ønsket og faktisk tilstand alltid er den samme.
  5. Når vi spesifiserer et over-nettverk som skal kobles til tjenestene dine, tildeler svermebehandleren adresser til containeren i overleggsnettverket når vi oppretter / oppdaterer containerne
  6. Rullende oppdateringer: Tjenesteoppdateringer kan utføres trinnvis svermebehandler lar deg spesifisere forsinkelsen mellom hver oppdatering uten driftsstans.

Konklusjon

Docker-sverm er et enkelt verktøy i stedet for store verktøy som utfører oppgaven. Docker med sverm gir orkestrering som vi trenger, det er enkelt å sette opp og sender den innfødte med docker-motor som vi uansett skal installere og bruke.

Anbefalte artikler

Dette er en guide til Docker Swarm Architecture. Her diskuterer vi hvordan noder og tjenester fungerer i en docker-sverm-arkitektur med fordelene. Du kan også gå gjennom andre relaterte artikler for å lære mer -

  1. Docker-arkitektur
  2. Hva er Docker Swarm?
  3. Swarm Intelligence-applikasjoner
  4. Hjelper Swarming Technology agile team til å vokse?