Einführung
Docker Swarm ist ein leistungsstarkes Tool zur Orchestrierung und Verwaltung von containerisierten Anwendungen im großen Maßstab. Eines der wichtigsten Merkmale von Docker Swarm ist die Möglichkeit, Overlay-Netzwerke (Overlay-Netze) zu erstellen, die es Containern ermöglichen, sicher und effizient über mehrere Hosts hinweg zu kommunizieren. In diesem Tutorial führen wir Sie durch den Prozess der Erstellung eines Overlay-Netzwerks in Docker Swarm und der Bereitstellung von Diensten darauf.
Einführung in Docker Overlay-Netzwerke
Docker Overlay-Netzwerke (Docker Overlay-Netze) sind ein leistungsstarkes Feature in Docker Swarm, das eine nahtlose Kommunikation zwischen Containern ermöglicht, die auf mehreren Docker-Hosts deployed (bereitgestellt) wurden. Diese Netzwerke bieten eine virtuelle Netzwerkschicht, die die zugrunde liegende physische Netzwerkinfrastruktur abstrahiert und es Containern ermöglicht, sich zu verbinden und zu kommunizieren, als ob sie auf demselben Host ausgeführt würden.
Grundlagen zu Docker Overlay-Netzwerken
Docker Overlay-Netzwerke basieren auf dem VXLAN (Virtual Extensible LAN)-Protokoll, das die Erstellung eines Layer-2-Virtuellen Netzwerks über einem Layer-3-Netzwerk ermöglicht. Dies ermöglicht es Containern, mit demselben logischen Netzwerk verbunden zu werden, unabhängig von ihrer physischen Lage.
graph LR
A[Docker Host 1] -- Overlay Network --> B[Docker Host 2]
B -- Overlay Network --> C[Docker Host 3]
C -- Overlay Network --> A
Die wichtigsten Vorteile der Verwendung von Docker Overlay-Netzwerken sind:
- Multi-Host-Konnektivität: Container können miteinander über mehrere Docker-Hosts hinweg kommunizieren, was skalierbare und verteilte Anwendungsbereitstellungen ermöglicht.
- Automatische Dienstermittlung: Container im selben Overlay-Netzwerk können einander mithilfe des von Docker Swarm bereitgestellten integrierten DNS-Dienstes entdecken und verbinden.
- Lastverteilung: Die Lastverteilungsfunktionen von Docker Swarm können genutzt werden, um den Datenverkehr auf mehrere Replikate eines Dienstes zu verteilen, der im Overlay-Netzwerk ausgeführt wird.
- Sichere Kommunikation: Docker Overlay-Netzwerke unterstützen die Verschlüsselung und gewährleisten so eine sichere Kommunikation zwischen Containern auf verschiedenen Hosts.
Architektur von Overlay-Netzwerken
Docker Overlay-Netzwerke werden auf dem Docker Swarm-Clustering- und Orchestrierungssystem aufgebaut. Jeder Swarm-Knoten (Manager oder Worker) nimmt am Overlay-Netzwerk teil und trägt zur gesamten Netzwerktopologie und -routing bei.
Die wichtigsten Komponenten der Docker Overlay-Netzwerkarchitektur sind:
- VXLAN-Tunnelendpunkt (VTEP): Jeder Swarm-Knoten führt einen VTEP aus, der für die Kapselung und Entkapselung des Netzwerkverkehrs zwischen Containern im Overlay-Netzwerk verantwortlich ist.
- Overlay-Netzwerkdatenbank: Eine verteilte Datenbank wie Raft wird verwendet, um die Overlay-Netzwerkkonfiguration und die Routinginformationen zu speichern und so die Konsistenz und Verfügbarkeit im gesamten Swarm-Cluster sicherzustellen.
- Overlay-Netzwerk-Treiber: Der Docker Overlay-Netzwerk-Treiber ist für die Verwaltung der Erstellung, Konfiguration und Wartung des Overlay-Netzwerks verantwortlich.
Indem Sie die zugrunde liegenden Konzepte und die Architektur von Docker Overlay-Netzwerken verstehen, sind Sie besser gerüstet, diese Netzwerke in Ihrer Docker Swarm-Umgebung zu erstellen und zu verwalten.
Erstellen eines Overlay-Netzwerks in Docker Swarm
Das Erstellen eines Overlay-Netzwerks in Docker Swarm ist ein unkomplizierter Prozess. In diesem Abschnitt führen wir Sie durch die Schritte zur Erstellung eines Overlay-Netzwerks und dessen Konfiguration für die Verwendung in Ihrer Docker Swarm-Umgebung.
Voraussetzungen
Stellen Sie vor dem Erstellen eines Overlay-Netzwerks sicher, dass Sie Folgendes haben:
- Ein Docker Swarm-Cluster mit mindestens einem Manager-Knoten und einem Worker-Knoten.
- Die Docker Engine-Version sollte 17.06 oder höher sein, da frühere Versionen möglicherweise nicht alle Funktionen von Overlay-Netzwerken unterstützen.
Erstellen des Overlay-Netzwerks
Um ein Overlay-Netzwerk in Docker Swarm zu erstellen, befolgen Sie diese Schritte:
- Verbinden Sie sich mit einem Docker Swarm-Manager-Knoten.
- Führen Sie den folgenden Befehl aus, um ein Overlay-Netzwerk zu erstellen:
docker network create --driver overlay --attachable my-overlay-network
In diesem Beispiel erstellen wir ein Overlay-Netzwerk namens my-overlay-network mit der Option --attachable, die es eigenständigen Containern ermöglicht, sich mit dem Netzwerk zu verbinden.
Überprüfen des Overlay-Netzwerks
Nachdem Sie das Overlay-Netzwerk erstellt haben, können Sie seine Erstellung überprüfen und seine Details mit den folgenden Befehlen untersuchen:
## Auflisten aller Netzwerke im Docker Swarm
docker network ls
## Untersuchen der Details des Overlay-Netzwerks
docker network inspect my-overlay-network
Die Ausgabe des Befehls docker network inspect liefert Informationen über das Overlay-Netzwerk, einschließlich des Subnetzes, des Gateways und der Liste der am Netzwerk beteiligten Knoten.
Bereitstellen von Diensten auf dem Overlay-Netzwerk
Sobald das Overlay-Netzwerk erstellt ist, können Sie Dienste darauf bereitstellen. Beim Erstellen eines Dienstes können Sie das Netzwerk angeben, an das er angeschlossen werden soll, indem Sie die Option --network verwenden:
docker service create --name my-service --network my-overlay-network nginx:latest
Dadurch wird ein neuer Dienst namens my-service erstellt und an das Overlay-Netzwerk my-overlay-network angeschlossen.
Indem Sie diese Schritte befolgen, können Sie Overlay-Netzwerke in Ihrer Docker Swarm-Umgebung erstellen und verwalten, was eine sichere und skalierbare Kommunikation zwischen Containern über mehrere Hosts hinweg ermöglicht.
Bereitstellen von Diensten auf dem Overlay-Netzwerk
Nachdem Sie nun in Ihrem Docker Swarm ein Overlay-Netzwerk erstellt haben, können Sie damit beginnen, Dienste darauf bereitzustellen. In diesem Abschnitt untersuchen wir, wie Sie Dienste auf dem Overlay-Netzwerk bereitstellen und seine Funktionen nutzen können.
Anbinden von Diensten an das Overlay-Netzwerk
Beim Erstellen eines neuen Dienstes in Docker Swarm können Sie das Netzwerk angeben, an das er angeschlossen werden soll, indem Sie die Option --network verwenden. Dadurch wird sichergestellt, dass die Container des Dienstes mit dem Overlay-Netzwerk verbunden sind und mit anderen Diensten im selben Netzwerk kommunizieren können.
docker service create --name my-service --network my-overlay-network nginx:latest
In diesem Beispiel erstellen wir einen neuen Dienst namens my-service und binden ihn an das Overlay-Netzwerk my-overlay-network an.
Dienstermittlung und Lastverteilung
Einer der Hauptvorteile der Verwendung eines Overlay-Netzwerks sind die integrierten Dienstermittlungs- und Lastverteilungsfunktionen, die von Docker Swarm bereitgestellt werden. Wenn Dienste auf dem Overlay-Netzwerk bereitgestellt werden, können sie sich mithilfe des internen DNS-Dienstes von Swarm entdecken und miteinander kommunizieren.
graph LR
A[Service A] -- Overlay Network --> B[Service B]
B -- Overlay Network --> C[Service C]
C -- Overlay Network --> A
Der Lastverteilungsmechanismus von Docker Swarm verteilt den Datenverkehr automatisch auf die Replikate eines Dienstes und gewährleistet so hohe Verfügbarkeit und Skalierbarkeit.
Sichere Kommunikation
Docker Overlay-Netzwerke unterstützen die Verschlüsselung und gewährleisten so eine sichere Kommunikation zwischen Containern auf verschiedenen Hosts. Dies ist besonders wichtig, wenn Sie sensible Anwendungen oder Dienste bereitstellen, die eine Ende-zu-Ende-Verschlüsselung erfordern.
Skalieren von Diensten
Wenn Ihre Anwendung wächst, können Sie Ihre Dienste einfach skalieren, indem Sie mehr Replikate hinzufügen. Docker Swarm wird automatisch die Netzwerkkonfiguration und die Lastverteilung für die neuen Replikate verwalten und sicherstellen, dass sie nahtlos mit anderen Diensten im Overlay-Netzwerk kommunizieren können.
docker service scale my-service=5
Dieser Befehl skaliert den Dienst my-service auf 5 Replikate, und Docker Swarm wird sicherstellen, dass die neuen Replikate mit dem Overlay-Netzwerk verbunden sind und von anderen Diensten erreicht werden können.
Indem Sie Dienste auf dem Docker Overlay-Netzwerk bereitstellen, können Sie die nahtlose Konnektivität, die Dienstermittlung, die Lastverteilung und die Sicherheitsfunktionen von Docker Swarm nutzen, was es einfacher macht, skalierbare, verteilte Anwendungen zu erstellen und zu verwalten.
Zusammenfassung
In diesem umfassenden Tutorial haben Sie gelernt, wie Sie ein Overlay-Netzwerk in Docker Swarm erstellen, ein entscheidender Schritt beim Aufbau von skalierbaren und vernetzten Docker-basierten Anwendungen. Indem Sie die Macht der Overlay-Netzwerke nutzen, können Sie eine nahtlose Kommunikation zwischen Ihren containerisierten Diensten ermöglichen und so eine robuste und effiziente Infrastruktur gewährleisten. Mit den in diesem Leitfaden gewonnenen Kenntnissen können Sie nun Ihr Docker Swarm-Umfeld sicher nach Ihren spezifischen Bedürfnissen verwalten und optimieren.



