Wie man ein Overlay-Netzwerk in Docker Swarm erstellt

DockerBeginner
Jetzt üben

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:

  1. Multi-Host-Konnektivität: Container können miteinander über mehrere Docker-Hosts hinweg kommunizieren, was skalierbare und verteilte Anwendungsbereitstellungen ermöglicht.
  2. Automatische Dienstermittlung: Container im selben Overlay-Netzwerk können einander mithilfe des von Docker Swarm bereitgestellten integrierten DNS-Dienstes entdecken und verbinden.
  3. 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.
  4. 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:

  1. 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.
  2. 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.
  3. 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:

  1. Ein Docker Swarm-Cluster mit mindestens einem Manager-Knoten und einem Worker-Knoten.
  2. 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:

  1. Verbinden Sie sich mit einem Docker Swarm-Manager-Knoten.
  2. 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.