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:
- Desentralisert design: vi kan administrere svermklynger gjennom svermkommando, det gir enkelt p (salve med tilgang til å bygge hele svermen.
- Det er veldig enkelt sammenlignet med Kubernetes.
- Høy tilgjengelighet: Blant nodene som er tilgjengelige i svermen hvis master mislykkes, vil en annen arbeidernode ta oppladning.
- Ønsket tilstand Avstemming: Svermebehandleren holder rede på klyngestatusen slik at ønsket og faktisk tilstand alltid er den samme.
- 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
- 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 -
- Docker-arkitektur
- Hva er Docker Swarm?
- Swarm Intelligence-applikasjoner
- Hjelper Swarming Technology agile team til å vokse?