Introduktion til Docker Swarm / Definition

En docker-sværm er et af de tilgængelige værktøjer inde i Docker-containere, som er en open source containerorkestrationsplatform / -værktøj. Det kaldes også det oprindelige klynge- og planlægningsværktøj for Docker. Når størrelsen på containere vokser, bliver det meget vanskeligt at styre det hele, der er, hvor rollen som Swarm kommer ind. Det hjælper udviklere og administratorer med at administrere og etablere en klynge af Docker-knudepunkter i form af en enkelt virtuel maskine.

Koncepterne / nøglebetingelserne, der bruges til Docker Swarm

  • Swarm - En sværm består af mange Docker-systemer / værter, der kører i sværmtilstand.
  • Swarmkit - En Swarmkit bruges til at implementere laget af Dockers orkestrering.
  • Opgave - En opgave består af kommandoer og den container, der skal køres inde i containeren. Opgaverne distribueres af sværmechefen til knudepunkterne.
  • Koder - Knude kan defineres som en entall Docker Engine, og som deltager i sværmen. En god produktionssværmudnyttelse er en, der har de distribuerede dockerknudepunkter spredt over mange maskiner.
  • Service - Hver gang der oprettes en service, specificerer den beholderen, der skal bruges, og de kommandoer, der skal køres inde i containeren. Så service er en liste over opgaver, der skal udføres på arbejdstageren eller managerknudepunkterne.
  • Manager Noder - Manager noder er at sende opgaverne til arbejdsnoder. Managerknudepunkterne er også ansvarlige for udførelse af andre funktioner såsom styring af klyngen og orkestrering.
  • Arbejderknudepunkter - Arbejderknudepunktet er at indtaste de opgaver, der kommer fra managerknuden og køre dem. En arbejderknude er installeret med agenter, der rapporterer enhederne af det arbejde, der er tildelt det til managerknudepunkterne.
  • Leader Nodes - Det fungerer som en leder til at udføre opgaver relateret til orkestrering.

Hvad kan man gøre ved at bruge Docker Swarm

Swarm er meget nyttigt for administratorer og udviklere i et Docker-økosystem. Følgende er nogle af de opgaver, som docker kan udføre:

  • Det kan bruges til at skalere antallet af containere.
  • Til etablering af koordinering mellem containere.
  • Til tildeling af opgaver til klyngen af ​​containere.
  • Til styring af livscyklussen på containere og også til udførelse af regelmæssig sundhedskontrol.
  • Til servering med det formål at rulle opdateringer til software blandt containerne.

Forståelse af Docker Swarm / Working

Nedenfor er arbejdet med docker-sværm, som er som følger:

Arbejde med knudepunkter

Som vi har set, er der to typer noder, dvs. manageren og arbejdstageren. Lad os se på, hvordan begge fungerer.

De opgaver, der håndteres af managerknudepunkterne er - Planlægning af tjenester, vedligeholdelse af klyngestatus og også opfyldelse af HTTP API-slutpunkter. Det tilrådes at køre flere managerknudepunkter, fordi det vil hjælpe dig med at drage fordel af sværmens fejltolerancefunktioner.

Arbejderknudepunkter kører containerne, og det kræver mindst 1 administrationsnode for at fungere.

Arbejde med tjenester

Det eneste formål med tjenester er at distribuere et appbillede til Docker-sværmen. For eksempel er en DB-server, webserver, HTTP-servere eksempler på tjenester.

Processer og betingelser i service:

  • Opgiftsfejl - Hver gang en opgave mislykkes inden i en docker-sværm, genstartes den generelt ikke. Så orkestratorens opgave er at fjerne den mislykkede opgave og erstatte den med den nye, der er i overensstemmelse med servicetilstanden.
  • Servicemulighed - Hver gang en tjeneste oprettes, kan vi altid definere en port, som tjenesten kan bruges til (for eksterne brugere), hukommelse og CPU-grænser kan anvendes, opdateringspolitikker kan defineres osv.
  • Venter på service - En tjeneste går i en ventende tilstand, når der i øjeblikket ikke er nogen noder i docker-sværmen for at køre opgaven.

Docker-sværmefiltre

Docker-sværmen har 5 filtre:

  • Affinitet - Formålet med affinitetsfilter er at sikre, at containerne kører på den samme netværksknudepunkt, og det definerer også sekvensen, som containerne skal køre i.
  • Port - Porten definerer en dedikeret ressource. Når en container kører på porten, som ikke er fri, skifter containeren til de andre tilgængelige knudepunkter.
  • Begrænsning - Når der oprettes en node, kan vi tildele nøgleværdipar ved hjælp af et begrænsningsfilter.
  • Afhængighed - Hver gang der er en afhængighed mellem containerne, planlægger afhængighedsfiltre dem på samme knude.
  • Sundhed - Hvis nogen af ​​noder er nede og ikke fungerer, tildeler dette filter ikke containere på det.

Nogle Docker Swarm-kommandoer:

FormålKommando
Oprettelse af en sværmDocker sverm init
Deltag i en sværmdocker-sværm slutte sig til \

–Token Token_number \

IP: Port

Oprettelse af en tjeneste og navngivning af dendocker service oprette –navn Edu
Fjernelse af en tjenestedocker-tjeneste fjern Edu
Opdateringstjenestedocker-serviceopdatering
Overvågning af knudesundheddocker-knude ls

Fordele og ulemper

Lad os nu se fordele og ulemper ved docker-sværm

Fordele:

  • Implementering er let, og sværmtilstanden er som standard leveret med Docker Engine.
  • Installation er nem og hurtig.
  • Sværmintegrationen kan let opnås med Docker CLI og Docker-komposit
  • Der kræves ikke meget erfaring, og det er let at lære.

Ulemper:

  • For at skalere tjenesterne kræves manuel indgriben.
  • Det har begrænset fejltolerance.
  • Ikke bredere funktioner er tilgængelige lige nu.
  • Det har et mindre samfund sammenlignet med andre tilgængelige orkestreringsværktøjer som Kubernetes.

Konklusion

I denne artikel er vi startet med en grundlæggende oversigt og definition af Docker-sværm, og vi så også de vigtige udtryk, der bruges i sværmeteknologien, som er en del af økosystemet. Derefter har vi forsøgt at forstå arbejdet bag Docker-sværmen og også lært et par Docker-kommandoer, der bruges i svermtilstand.

Anbefalede artikler

Dette har været en guide til Hvad er Docker Swarm ?. Her diskuterede vi konceptet, kommandoen, filtre, brug og forståelsen af ​​Docker Swarm. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. Spørgsmål om Docker-interview
  2. Hvad er Cassandra?
  3. Microservices Interview Spørgsmål
  4. Hvad er Jenkins?