Eine Einführung in Docker Swarm
12:58, 27.05.2026
Was bedeutet „Docker Swarm“?
Ein Docker Swarm ist ein Orchestrierungstool, das Docker-Anwendungen ausführt. Der Swarm-Manager steuert alle Aktivitäten innerhalb des Clusters, und die Maschinen im Cluster werden als Knoten bezeichnet.
Was sind die Anwendungsfälle für Docker Swarm?
Docker Swarm verfügt über mehrere Worker-Knoten und mindestens einen Manager-Knoten, der für die effiziente Verwaltung der Ressourcen erforderlich ist. Für Docker Swarm gibt es kein Software-as-a-Service, aber es umfasst Docker-CE
Wichtige Konzepte von Docker Swarm
Um Docker Swarm besser zu verstehen, wollen wir einige der wichtigsten Begriffe besprechen, die mit Docker-Apps und Containern zusammenhängen.
Wenn Sie neu in diesem Thema sind, ist der grundlegende Begriff „Docker“. Diese Softwareplattform ist für die Integration der Container in den Entwicklungsprozess erforderlich. Eine solche Plattform steht allen Nutzern von Mac- und Windows-Systemen zur Verfügung und ist zudem als Open-Source-Software verfügbar. Das bedeutet, dass eine Schnittstelle zwischen containerisierten Anwendungen und dem Host-Betriebssystem geschaffen wird.
Der Schwerpunkt der Docker-Anwendung liegt auf Verwaltung und Nutzung. So lassen sich Apps mit allen Abhängigkeiten und dem Code einfach in Container packen und können auf diese Weise in jeder Umgebung funktionieren. Containerisierte Apps können reibungslos funktionieren, wenn sie von einer Umgebung in eine andere verschoben werden.
Der nächste grundlegende Begriff ist „Image“. Es handelt sich um ein Paket von Dateien, die ausgeführt werden sollen, und es enthält alle Bibliotheken, den Code, Binärdateien und andere Notwendigkeiten, um eine App auszuführen.
Ein Dockerfile ist eine Datei, die den Inhalt des Images definiert. Stellen wir uns vor, Sie möchten ein Programm in Java schreiben. Der von Ihnen verwendete Rechner versteht diesen Code nicht, daher müssen Sie ihn irgendwie in eine für den Rechner verständliche Variante umwandeln. Dies wird als Java Runtime Environment bezeichnet und umfasst Bibliotheken, Programme und Konfigurationsdateien. In Docker beziehen sich diese Ressourcen auf das Dockerfile.
Es ist nicht notwendig, JRE auf Ihrem Rechner zu installieren; stattdessen sollten Sie ein portables JRE herunterladen und in den Container einbinden. Sobald die App aus dem Container gestartet wird, befinden sich alle Ressourcen in der containerisierten Umgebung.
Der Hauptunterschied zwischen Composer und Swarm besteht darin, dass Docker Compose mehrere Container auf dem Host konfiguriert, während Swarm Container mit mehreren Hosts verbindet.
Welche zwei Diensttypen gibt es im Docker-Swarm-Modus?
- Replicated. Dieser Diensttyp funktioniert in Abhängigkeit von der Anzahl der Replikat-Aufgaben, die den verfügbaren Knoten zugewiesen werden.
- Global. Dieser Diensttyp funktioniert, indem jedem Knoten eine Aufgabe zugewiesen wird, die den spezifischen Anforderungen und Einschränkungen entspricht.
Welche Rollen spielen Docker-Swarm-Knoten?
Docker Swarm umfasst mehrere virtuelle oder physische Maschinen, die in einem Cluster zusammenarbeiten. Sobald Maschinen Teil des Clusters werden, gelten sie bereits als Knoten. In Docker Swarm gibt es in der Regel mehrere Worker-Knoten und mindestens einen Manager-Knoten, der für die effiziente Nutzung der Ressourcen zuständig ist. Auf jedem Knoten läuft ein Load Balancer, der Lastanfragen über mehrere Hosts und Container verteilt.
Sehen wir uns nun die wichtigsten Knotentypen an:
Manager-Knoten in Docker Swarm
Die Hauptaufgabe des Manager-Knotens besteht darin, den Worker-Knoten Aufgaben zuzuweisen. Darüber hinaus übernimmt der Manager-Knoten einige Verwaltungsaufgaben. Die wichtigste Empfehlung hinsichtlich der Anzahl dieser Knoten lautet, nicht mehr als sieben Manager-Knoten zu verwenden.
Leader-Knoten im Docker Swarm
Nach der Einrichtung des Clusters wird einer der verfügbaren Knoten als „Leader“ zugewiesen; dieser Vorgang erfolgt mithilfe des Raft-Konsensalgorithmus. Dieser Hauptknoten ist sowohl für die Aufgabenkoordination als auch für die Verwaltungsprozesse des Swarms verantwortlich.
Falls der Leader-Knoten aus technischen Gründen nicht erreichbar ist, kann mithilfe desselben Algorithmus ein anderer Leader-Knoten ausgewählt werden.
Worker-Knoten in Docker Swarm
Die Worker-Knoten erhalten und führen Aufgaben aus, die ihnen vom Manager-Knoten zugewiesen werden. Gemäß den Standardeinstellungen können alle Manager-Knoten auch die Aufgaben der Worker-Knoten übernehmen, sofern sie über ausreichende Ressourcen verfügen.
Vorteile von Docker Swarm: Ist es das Richtige für Sie?
Nutzung der Container-Technologie
Einer der größten Vorteile von Docker Swarm liegt in seiner Fähigkeit, die Container-Technologie voll auszuschöpfen. Nun ist es möglich, Dienste oder Anwendungen in einer eigenständigen virtuellen Umgebung bereitzustellen; vor Einführung dieser Technologie war dies nur mit einer VM möglich. Container sind ressourcenschonend, sodass die Rechenleistung effizienter genutzt werden kann.
Sicherstellung hoher Verfügbarkeit mit Docker Swarm
Dank der Redundanz ist nun eine hohe Verfügbarkeit der Anwendung erreichbar. Es können bis zu sieben Swarm-Manager vorhanden sein, die Aufgaben zuweisen. Das bedeutet, dass die Verfügbarkeit mehrerer Manager einen besseren Betrieb gewährleisten kann, selbst wenn einer der Knoten ausfällt, da noch einige Manager weiterarbeiten.
Integrierter Lastausgleich
Aufgaben werden unter Verwendung verschiedener Methoden geplant. Mithilfe des Lastausgleichs ist es möglich, das bestmögliche Ergebnis zu erzielen, wenn Container-Workloads dem optimalen Host zugewiesen werden.
Einsatz komplexer Strategien zur Überwachung und Analyse von Docker-Containern
Das Problem bei standardmäßigen Linux-basierten Tools liegt in ihrer Abhängigkeit von der Analyse von Log-Dateien und einigen Skalierungsproblemen. Die meisten Unternehmen suchen nach einem zentralisierten Ansatz mit containerorientierten Tools für die Überwachung.
Beginnen Sie mit einer umfassenden Strategie zur Überwachung der Docker-Infrastruktur. Diese umfasst zahlreiche Aspekte, insbesondere Konfigurationsinformationen, die Korrelation von Container-Ereignissen sowie die Überwachung von Daemon- und Host-Protokollen, um einen vollständigen Überblick über die Umgebung zu erhalten.