Introduktion till Docker Swarm Architecture
Docker Swarm är ett kluster- och orkestreringsverktyg för containrar som är inbyggt i Docker Engine för det distribuerade systemet som omfattar hundratals containrar. Docker-nod, Docker-tjänster och Docker-uppgifter är nyckelkomponenter i Dockers svärmarkitektur.
- Docker-nod: Det är Docker Engine-instansen som ingår i Docker-svärmen, har två slag:
- Manager Node: Ansvarig för alla orkestrerings- och behållarhanteringsuppgifter som krävs för att hålla systemet i önskat tillstånd, som att upprätthålla klustertillståndet, schemalägga tjänsterna och serva svärmläget HTTP-slutpunkter.
- Docker Service: Det är uppgiftsdefinitionen som måste utföras.
Typisk Docker Swarm Architecture
Nedan är punkterna för typisk docker-svärmarkitektur:
- Noden är nyckelmedlemmen i docker-svärmarkitekturen, en svärmarkitektur kan ha mer än en hanteringsnoder ledd av en enda managernod vald med Raft-algoritmen, en hanteringsnod kan också fungera som arbetarnod men kan konfigureras för att fungera som manager nod också.
- Manager-noder använder Raft Consensus Algoritm för att internt hantera klustrtillståndet. Detta är för att säkerställa att alla hanteringsnoder som planerar och kontrollerar uppgifter i klustret upprätthåller / lagrar enhetligt tillstånd.
- En svärm är ett kluster av Docker-motorer eller noder där vi distribuerar våra tjänster. I det tidiga stadiet kom Docker med ett klusterhanteringssystem med ett kommunikationsprotokoll som kallas Beam. Senare lägger de till fler API: er och döpte om dem för att svärma. Den första generationens svärm kallas "svärm v1".
Arbetsflöde av Dockersvärm
Arbetsflödet för docker-svärm består av att förstå hur noder och tjänster fungerar i en docker-svärmsarkitektur:
Steg 1: Det första steget är att skapa en uppsättning docker-maskin som fungerar som noder i docker-svärmen , en av dessa noder är chefen, de återstående noderna fungerar som arbetarnoder. För att skapa en dockningsmaskin använder du kommandot på Windows, startar dockerterminalen.
docker-machine create –driver hyperv manager1
- Där 'manager1' är namnet på dockningsmaskiner, för att lista maskinerna respektive körs.
docker-machine ls
docker-machine ip manager1
Steg 2: Det andra steget är att skapa arbetarmaskiner, använd kommandot nedan för att skapa så mycket som arbetarmaskiner du vill, här låt oss skapa 3 arbetare.
docker-machine create –driver hyperv worker1
docker-machine create –driver hyperv worker2
docker-machine create –driver hyperv worker3
- Vi kan ansluta till chefen eller arbetaren med kommandot nedan, vilket kommer att få dig in i maskinen.
docker-machine ssh manager1/worker1
Steg 3: Steg tre är att initiera docker-svärmen, vi måste köra detta kommando på den maskin som vi vill ha arbete som manager, det är hur vi skapar nodhanteraren, vi kan också lägga till fler chefer.
docker-machine ssh manager1
docker swarm init –advertise-and Manager1 IP
Steg 4: Steg fyra är att gå med i arbetarkoderna för att svärma, få kommandot att gå med i nod som en arbetare med kommandot nedan på manager-maskinen och köra kommandot du har på den arbetarmaskin du vill göra en arbetare.
Docker swarm join-token worker1
- För att kontrollera om arbetaren är förenad för att svärma eller inte gå till chefsmaskinen och köra kommandot, listas den tillagda arbetarmaskinen med managerinformation.
docker-machine ls
Steg 5: Steg fem är att köra standardkommandon för dockaren på chefen.
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)
Steg 6: Steg sex är att köra dockningscontainrarna på docker-svärmen, vi kan skapa alla tjänster och det är kopior. Gå till ub.docker.com, logga in och gå för att utforska depositarier, vi kan se olika bilder som är motorer, till exempel nginx (det körs på webserver) skapar en tjänst och det är repliker med hjälp av kommandot nedan på chefen.
docker service create –replicas 3 -p 80:80 –name sample nginx
- Där 'prov' är servicenamnet och 80 är den port som exponeras för att kontrollera statusen för servicekörningen under kommandot i hanteringsnoden.
docker service ls
docker service ps sample
Kontrollera tjänsten som körs på alla noder och kolla också i webbläsaren genom att ange IP för alla noder.
Steg 7: Steg sju, nu kan vi se den faktiska användningen av dockningsvärmen där vi skalar upp tjänsten upp och ner. För att skala en tjänst, kör kommandot nedan på manager-maskinen
docker service scale sample=4
- Ovanstående kommando gör att tjänsteexemplet körs på fyra noder, även om alla noder är upptagna kommer det att skapa en annan tjänst på manager eller arbetare. På liknande sätt kan vi nedskala tjänsten.
docker service scale sample=2
- Vi kan också inspektera noden för att få detaljer som hur många och vilken tjänst som körs på en nod genom att köra kommandona nedan på managernoden
docker node inspect worker1/manager1
docker node inspect self
Steg 8: Steg åtta är att uppdatera tjänsten när tjänsten körs på flera maskiner och om vi vill uppdatera tjänsten är det mycket enkelt och enkelt, till exempel om vi vill uppdatera versionen av tjänsten nginx.
docker service update –image nginx:1.14.0 sample
Steg 9: Stäng av / stopp / ta bort.
- För att stänga av en viss nod använder du kommandot nedan, som ändrar nodens status till 'dränera'.
docker node update –availability drain worker1
- Ta bort service från alla maskiner.
docker service rm sample
- För att lämna svärmen, vilket ändrar statusen för "ned".
docker swarm leave
- Att stoppa en maskin (Kör från dockarterminalen, inte i chef eller arbetarmaskin).
docker-machine stop worker1
docker-machine rm worker1
Fördelarna med Docker Swarm Architecture
Nedan är punkterna visar fördelarna med Docker Swarm Architecture:
- Decentraliserad design: vi kan hantera svärmkluster genom svärmkommando, det ger en enda p (salva av åtkomst för att bygga hela svärmen.
- Det är väldigt enkelt jämfört med Kubernetes.
- Hög tillgänglighet: Bland de noder som finns tillgängliga i svärm om master misslyckas kommer en annan arbetsknod att ta uppladdning.
- Önskad tillståndsavstämning: Svärmhanteraren håller koll på klustertillståndet så att önskat och faktiskt tillstånd alltid är detsamma.
- När vi anger ett över-nätverk för att ansluta till dina tjänster tilldelar svärmhanteraren adresser till behållaren i överläggsnätverket när vi skapar / uppdaterar behållarna
- Rulla uppdateringar: Serviceuppdateringar kan göras stegvis svärmhanteraren låter dig specificera fördröjningen mellan varje uppdatering utan driftstopp.
Slutsats
Docker svärm är ett enkelt verktyg istället för stora verktyg som klarar uppgiften, Docker med svärm ger orkestrering som vi behöver, det är lätt att installera och skickar den infödda med dockningsmotor som vi kommer att installera och använda ändå.
Rekommenderade artiklar
Detta är en guide till Docker Swarm Architecture. Här diskuterar vi hur noder och tjänster fungerar i en dockningsvärmarkitektur med deras fördelar. Du kan också gå igenom våra andra relaterade artiklar för att lära dig mer -
- Dockerarkitektur
- Vad är Docker Swarm?
- Swarm Intelligence-applikationer
- Hjälper Swarming Technology agila lag att växa?