Einführung
Docker Swarm ist eine leistungsstarke Container-Orchestrierungslösung, die Entwicklern ermöglicht, mehrere Docker-Hosts zu einer einheitlichen, skalierbaren Infrastruktur zusammenzuführen. Dieses umfassende Tutorial bietet detaillierte Einblicke in die Erstellung, Konfiguration und Verwaltung von Docker Swarm-Clustern. Es behandelt grundlegende Konzepte, Knotentypen, Strategien zur Bereitstellung von Services und Best Practices für die Erstellung robuster containerisierter Umgebungen.
Docker Swarm Grundlagen
Einführung in Docker Swarm
Docker Swarm ist eine native Clustering- und Container-Orchestrierungslösung für Docker-Umgebungen. Sie ermöglicht Entwicklern die Erstellung und Verwaltung eines Clusters von Docker-Nodes und verwandelt mehrere Docker-Hosts in einen einzigen, virtuellen Docker-Host.
Kernkonzepte
Swarm Cluster-Architektur
graph TD
A[Swarm Manager] --> B[Worker Node 1]
A --> C[Worker Node 2]
A --> D[Worker Node 3]
Swarm Knotentypen
| Knotentyp | Beschreibung | Verantwortlichkeiten |
|---|---|---|
| Manager-Node | Steuert den Clusterzustand | Orchestrierung, Scheduling |
| Worker-Node | Führt Container-Workloads aus | Ausführung von Services |
Initialisierung eines Swarm Clusters
## Swarm auf dem primären Knoten initialisieren
docker swarm init --advertise-addr 192.168.1.100
## Worker-Join-Token generieren
docker swarm join-token worker
## Worker-Knoten dem Cluster hinzufügen
docker swarm join --token < token > 192.168.1.100:2377
Hauptmerkmale
- Dezentrale Architektur
- Deklaratives Service-Modell
- Skalierung und Rollout-Updates
- Service-Discovery
- Lastverteilung
- Sichere Kommunikation
Beispiel für die Servicebereitstellung
## Erstellen eines replizierten Services
docker service create --replicas 3 --name web nginx
## Skalieren des Services
docker service scale web=5
## Aktualisieren des Services
docker service update --image nginx:latest web
Clusterkonfiguration
Swarm Cluster-Topologie
graph TD
A[Manager-Knoten] --> B[Worker-Knoten 1]
A --> C[Worker-Knoten 2]
A --> D[Worker-Knoten 3]
Strategien zur Knoteninitialisierung
Einrichtung des Manager-Knotens
## Initialisierung des Swarm-Clusters auf dem primären Manager
docker swarm init --advertise-addr 192.168.1.100
## Anzeigen der Cluster-Join-Tokens
docker swarm join-token manager
docker swarm join-token worker
Konfiguration des Worker-Knotens
## Hinzufügen des Worker-Knotens zum Cluster
docker swarm join \
--token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxx \
192.168.1.100:2377
Clusterkonfigurationsparameter
| Parameter | Beschreibung | Standardwert |
|---|---|---|
| Advertise Address | Netzwerk-Schnittstelle des Knotens | Primäre IP-Adresse |
| Listen Port | Swarm-Kommunikationsport | 2377 |
| Knotenlabels | Metadaten zur Knotenauswahl | Keine |
Erweiterte Clusterkonfiguration
## Hinzufügen von benutzerdefinierten Knotenlabels
docker node update --label-add type=frontend worker1
## Festlegen der Knotenverfügbarkeit
docker node update --availability drain worker2
Netzwerkkonfiguration
## Erstellen eines Overlay-Netzwerks
docker network create \
--driver overlay \
--subnet 10.0.0.0/24 \
my-network
Serviceverwaltung
Ablauf der Servicebereitstellung
graph LR
A[Service erstellen] --> B[Container bereitstellen]
B --> C[Service skalieren]
C --> D[Service aktualisieren]
D --> E[Leistung überwachen]
Grundlegende Serviceerstellung
## Bereitstellung des nginx-Services mit 3 Replikaten
docker service create \
--name web-service \
--replicas 3 \
--publish 80:80 \
nginx:latest
Servicekonfigurationsoptionen
| Option | Beschreibung | Beispiel |
|---|---|---|
| --replicas | Anzahl der Containerinstanzen | 3 |
| --update-parallelism | Parallele Aktualisierungen | 2 |
| --constraint | Regeln für die Knotenplatzierung | node.labels.type==frontend |
Strategien zur Serviceskalierung
## Dynamische Skalierung des Services
docker service scale web-service=5
## Horizontale Skalierung
docker service update \
--replicas-max-per-node 2 \
web-service
Konfiguration der Lastverteilung
## Erstellen eines Services mit benutzerdefinierter Lastverteilung
docker service create \
--name api-service \
--replicas 4 \
--publish mode=host,target=8080,published=80 \
--update-delay 10s \
api-image:latest
Mechanismen zur Service-Aktualisierung
## Rolling-Update-Strategie
docker service update \
--image nginx:latest \
--update-parallelism 2 \
--update-delay 10s \
web-service
Serviceüberwachung
## Auflistung der aktiven Services
docker service ls
## Inspektion eines bestimmten Services
docker service ps web-service
Zusammenfassung
Durch die Beherrschung von Docker Swarm können Entwickler und Systemadministratoren containerisierte Anwendungen effektiv auf verteilten Systemen verwalten. Das Tutorial demonstriert wichtige Techniken zur Initialisierung von Clustern, zur Konfiguration von Knotentopologien, zur Bereitstellung von Services und zur Nutzung erweiterter Funktionen wie Service-Discovery, Lastverteilung und sicherer Kommunikation. Das Verständnis dieser Grundlagen befähigt Teams, skalierbare, robuste Container-Infrastrukturen mit erhöhter Betriebseffizienz zu erstellen.



