Inleiding tot Docker Swarm Architecture
Docker Swarm is een clustering- en orkestratietool voor containers die is ingebouwd in Docker Engine voor het gedistribueerde systeem met honderden containers. Docker Node, Docker Services en Docker-taken zijn belangrijke componenten van Docker-zwermarchitectuur.
- Docker Node: Het is de Docker Engine-instantie in Docker-zwerm, heeft twee soorten:
- Manager Node: Verantwoordelijk voor alle orkestratie- en containerbeheertaken die nodig zijn om het systeem in de gewenste staat te houden, zoals het handhaven van de clusterstatus, het plannen van de services en het onderhouden van de HTTP-eindpunten in de zwermmodus.
- Dockerservice: dit is de taakdefinitie die moet worden uitgevoerd.
Typische Docker-zwermarchitectuur
Hieronder staan de punten voor de typische docker-zwermarchitectuur:
- Knooppunt is het belangrijkste lid van de docker-zwermarchitectuur, een zwermarchitectuur kan meer dan één managerknooppunten hebben, geleid door een enkel managerknooppunt dat wordt gekozen met behulp van het Raft-algoritme, een managerknooppunt kan ook werken als een werkknooppunt, maar kan worden geconfigureerd om te werken als manager knoop ook.
- Manager-knooppunten gebruiken het Raft Consensus-algoritme om de clusterstatus intern te beheren. Dit is om ervoor te zorgen dat alle beheerknooppunten die taken plannen en beheren in de cluster een consistente status behouden / opslaan.
- Een zwerm is een cluster van Docker-motoren of knooppunten, waar we onze services inzetten. In een vroeg stadium kwam Docker met een clusterbeheersysteem met een communicatieprotocol dat Beam wordt genoemd. Later hebben ze meer API's toegevoegd en de naam gewijzigd in zwerm. De eerste generatie zwerm wordt 'zwerm v1' genoemd.
Werkstroom van Docker-zwerm
De workflow van docker-zwerm bestaat uit het begrijpen van hoe knooppunten en services werken in een docker-zwermarchitectuur:
Stap 1: De eerste stap is het maken van een set docker-machine die zal fungeren als knooppunten in de docker-zwerm , een van deze knooppunten is de manager, de resterende knooppunten fungeren als werkknooppunten. Gebruik de opdracht onder Windows om een docker-machine te maken en start de docker-terminal.
docker-machine create –driver hyperv manager1
- Waar 'manager1' de naam van de koppelmachine is, geeft een lijst weer van de machines en deze worden respectievelijk uitgevoerd.
docker-machine ls
docker-machine ip manager1
Stap 2: De tweede stap is het maken van werkmachines, gebruik onderstaande opdracht om zoveel werkmachines te maken als u wilt, laten we hier 3 werkers maken.
docker-machine create –driver hyperv worker1
docker-machine create –driver hyperv worker2
docker-machine create –driver hyperv worker3
- We kunnen verbinding maken met de manager of medewerker met behulp van de onderstaande opdracht, die u naar binnen in de machine brengt.
docker-machine ssh manager1/worker1
Stap 3: Stap drie is het initialiseren van de docker-zwerm, we moeten deze opdracht uitvoeren op de machine die we als manager willen laten werken, zo maken we knooppuntmanager, we kunnen ook meer managers toevoegen.
docker-machine ssh manager1
docker swarm init –advertise-and Manager1 IP
Stap 4: Stap vier is om zich bij de werkknooppunten aan te sluiten om te zwermen, het commando om bij het knooppunt te komen als werker te krijgen met behulp van het onderstaande commando op manager machine en voer het commando uit dat je hebt op de werkersmachine waarvan je een werker wilt maken.
Docker swarm join-token worker1
- Om te controleren of de medewerker zich bij de zwerm voegt of niet naar de managercomputer gaat en de opdracht uitvoert, wordt een lijst weergegeven van de toegevoegde werknemercomputer met managerdetails.
docker-machine ls
Stap 5: Stap vijf is het uitvoeren van de standaardopdrachten van de docker op de manager.
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)
Stap 6: Stap zes is om de dockercontainers op dockerzwerm te laten draaien, we kunnen elke service en de replica's ervan maken. Ga naar ub.docker.com, log in en ga naar depots verkennen. We kunnen verschillende afbeeldingen zien die motoren zijn, bijvoorbeeld, nginx (het draait op webserver) creëert een service en zijn replica's met behulp van onderstaande opdracht op de manager.
docker service create –replicas 3 -p 80:80 –name sample nginx
- Waar 'sample' de servicenaam is en 80 de poort die wordt blootgesteld om de status van de service run hieronder-opdracht op het beheerknooppunt te controleren.
docker service ls
docker service ps sample
Controleer de service die op alle knooppunten wordt uitgevoerd en controleer ook in de browser door IP voor alle knooppunten te geven.
Stap 7: Stap zeven, nu kunnen we het daadwerkelijke gebruik van docker-zwerm zien, waarbij we de service op en neer schalen. Voer de onderstaande opdracht uit op de beheermachine om een service te schalen
docker service scale sample=4
- Met de bovenstaande opdracht wordt het servicemonster op 4 knooppunten uitgevoerd, hoewel alle knooppunten bezet zijn, wordt er een andere service voor manager of medewerker gemaakt. Op dezelfde manier kunnen we de service verkleinen.
docker service scale sample=2
- We kunnen ook het knooppunt inspecteren om de details te krijgen, zoals hoeveel en welke service op een knooppunt worden uitgevoerd door de onderstaande opdrachten op het managerknooppunt uit te voeren
docker node inspect worker1/manager1
docker node inspect self
Stap 8: Stap acht is om de service bij te werken wanneer de service op meerdere machines wordt uitgevoerd en als we de service willen bijwerken, is het heel eenvoudig, bijvoorbeeld als we de versie van de service nginx willen bijwerken.
docker service update –image nginx:1.14.0 sample
Stap 9: Afsluiten / stoppen / verwijderen.
- Om een bepaald knooppunt af te sluiten, gebruikt u de onderstaande opdracht, die de status van het knooppunt verandert in 'afvoer'.
docker node update –availability drain worker1
- Om service van alle machines te verwijderen.
docker service rm sample
- Om de zwerm te verlaten, die de status van de 'omlaag' verandert.
docker swarm leave
- Een machine stoppen (uitvoeren vanaf dokterminal, niet in manager- of werkmachine).
docker-machine stop worker1
docker-machine rm worker1
Voordelen van Docker Swarm Architecture
Hieronder staan de punten die de voordelen van Docker Swarm Architecture tonen:
- Gedecentraliseerd ontwerp: we kunnen zwermclusters beheren via een zwermcommando. Het geeft een enkele toegang (volledige toegang tot de volledige zwerm).
- Het is heel eenvoudig in vergelijking met Kubernetes.
- Hoge beschikbaarheid: onder de beschikbare knooppunten in de zwerm als de master uitvalt, zal een ander werkknooppunt kosten in rekening brengen.
- Gewenste status Afstemming: de zwermmanager houdt de clusterstatus bij zodat de gewenste en werkelijke status altijd hetzelfde is.
- Wanneer we een overnetwerk opgeven om verbinding te maken met uw services, wijst de zwermmanager adressen toe aan de container in het overlay-netwerk zodra we de containers maken / bijwerken
- Rolling Updates: Service-updates kunnen stapsgewijs worden uitgevoerd. Met Swarm Manager kunt u de vertraging tussen elke update opgeven zonder downtime.
Conclusie
Docker-zwerm is een eenvoudige tool in plaats van grote tools die de taak volbrengen, Docker met zwerm biedt orkestratie die we nodig hebben, het is eenvoudig in te stellen en verzendt de native met docker-engine die we toch gaan installeren en gebruiken.
Aanbevolen artikelen
Dit is een handleiding voor Docker Swarm Architecture. Hier bespreken we hoe knooppunten en services werken in een docker-zwermarchitectuur met hun voordelen. U kunt ook onze andere gerelateerde artikelen doornemen voor meer informatie -
- Docker-architectuur
- Wat is Docker Swarm?
- Zwermintelligentietoepassingen
- Helpt Swarming Technology Agile Teams om te groeien?