Docker SwarmΒΆ
Wat is Docker SwarmΒΆ
Docker Swarm is een clustering- en orkestratietool voor Docker-containers. Het maakt het mogelijk om meerdere Docker-hosts te groeperen en deze als één logische eenheid te beheren.
Belangrijkste kenmerken van Docker Swarm:
- Container Orchestratie: Automatiseert de uitrol, schaling en het beheer van containers.
- Load Balancing: Verdeelt verkeer automatisch over de beschikbare containers.
- High Availability: Containers kunnen worden gerepliceerd over meerdere nodes, zodat de applicatie blijft draaien bij uitval.
- Rolling Updates: Voert updates uit zonder downtime.
Swarm is ingebouwd in Docker en eenvoudiger dan Kubernetes, maar biedt minder geavanceerde functies. Het is vooral handig voor kleinere tot middelgrote projecten waar eenvoud en snelle setup belangrijk zijn.
Docker Swarm opzettenΒΆ
In Docker Swarm zijn er twee soorten nodes:
graph LR
A{Manager} <--> B[Node1];
A{Manager} <--> C[Node2];
A{Manager} <--> D[Node..];
1. Manager Node ποΈΒΆ
- Beheert het cluster en verdeelt taken (orkestratie).
- Kan services aanmaken, schalen en beheren.
- Gebruikt Raft-consensus voor hoge beschikbaarheid.
2. Worker Node πΒΆ
- Voert de toegewezen taken (containers) uit.
- Kan geen beslissingen nemen over orkestratie.
- Meldt status terug aan de manager.
Kort gezegd: Managers beheren, workers voeren uit. π
Om een Docker swarm op te zetten heb je 2 commando`s nodig. Dit voor je uit op de Manager.
Swarm NetworksΒΆ
Wat zijn Swarm networksΒΆ
Docker Swarm-netwerken bepalen hoe containers binnen een Swarm-cluster met elkaar en met de buitenwereld communiceren. Er zijn drie hoofdtypen netwerken:
1. Overlay Network πΒΆ
- Verbindt containers over meerdere nodes.
- Standaard voor services in Swarm Mode.
- Zorgt voor interne service-discovery en load balancing.
2. Ingress Network πΒΆ
- Specifiek voor het routeren van inkomend verkeer naar de juiste service.
- Gebruikt automatisch een ingebouwde load balancer.
3. Bridge Network (per node) πΒΆ
- Alleen binnen één node bruikbaar.
- Containers kunnen communiceren, maar niet over meerdere nodes heen.
Swarm-netwerken maken het makkelijk om containers dynamisch te laten samenwerken zonder dat je handmatig IP-adressen hoeft te beheren.
Note
Je kan je huidige docker containers het swarm netwerk laten gebruiken. Als je een Swarm netwerk aanmaakt zien uw nodes deze pas als er een conatainer op de node deze gebruikt.
Aanmaken van een Docker Swarm overlay networkΒΆ
Door een Docker Swarm network aan te maken dat ook attacheble is aan uw huide docker conainers gebruik je het volgende commando op de manager.
Het enigste dat je nu moet doen is dit netwerk in je compose steken van de stand alone docker containers die je met elkaar wilt laten praten.
Testen Docker Swarm networkΒΆ
Om een Swarm netwerk te testen over verschillende nodes moet je het ping commando gebruiken en de conatiner naan of (docker network)IP gebruiken. Dat doe je met volgende commando.