7.1 Lernen des overlay
-Netzwerks
Das overlay
-Netzwerk ist ein verteiltes Docker-Netzwerk, das es Containern, die auf verschiedenen Hosts laufen, ermöglicht, miteinander zu kommunizieren. Es wird oft im Kontext der Container-Orchestrierung wie Docker Swarm oder Kubernetes verwendet, um die Verbindung zwischen Containern sicherzustellen, die auf verschiedenen Knoten laufen. In dieser Vorlesung schauen wir uns an, wie man ein overlay
-Netzwerk erstellt und nutzt sowie einige Anwendungsbeispiele.
Das overlay
-Netzwerk erstellt ein virtuelles verteiltes Netzwerk über bestehende Netzwerke und verbindet mehrere Hosts zu einem einzigen Netzwerkraum. So können Container miteinander kommunizieren, als ob sie sich im selben lokalen Netzwerk befinden, unabhängig von der physischen Standort der Hosts.
Vorteile der Nutzung des overlay
-Netzwerks:
- Kommunikation zwischen Containern auf verschiedenen Hosts: ermöglicht Netzwerkkommunikation zwischen Containern, die auf verschiedenen Knoten laufen.
- Isolation: erlaubt das Erstellen isolierter Netzwerkräume für verschiedene Anwendungen.
- Skalierbarkeit: unterstützt das dynamische Hinzufügen und Entfernen von Knoten ohne Unterbrechung.
7.2 Einrichten eines overlay
-Netzwerks
Um ein overlay
-Netzwerk zu erstellen, musst du zuerst das Docker Swarm
-Cluster initialisieren. Dies erstellt den Manager-Knoten und ermöglicht die Erstellung von verteilten Netzwerken.
Schritt 1: Initialisierung von Docker Swarm
Führe den Befehl auf dem Host aus, der der Manager des Clusters sein wird. Dieser Befehl initialisiert das Swarm
-Cluster und gibt einen Befehl aus, um andere Knoten dem Cluster hinzuzufügen.
docker swarm init
Schritt 2: Beitritt von Worker-Knoten zum Cluster
Führe auf anderen Hosts den Befehl aus, der von docker swarm init
generiert wurde, um sie dem Cluster hinzuzufügen. Beispielbefehl:
docker swarm join --token <SWARM_TOKEN> <MANAGER_IP>:2377
Schritt 3: Erstellen eines overlay
-Netzwerks
Nach der Initialisierung des Clusters erstelle das overlay
-Netzwerk mit folgendem Befehl:
docker network create -d overlay my_overlay_network
Schritt 4: Überprüfung des Netzwerks
Um zu überprüfen, ob das Netzwerk erfolgreich erstellt wurde, führe den Befehl docker network ls
aus, der eine Liste aller Netzwerke einschließlich des neuen overlay
-Netzwerks ausgibt:
docker network ls
Beispielausgabe:
NETWORK ID NAME DRIVER SCOPE
a1b2c3d4e5 my_overlay_network overlay swarm
Jetzt ist das Netzwerk my_overlay_network
bereit für den Einsatz in verteilten Anwendungen.
7.3 Verwendung des overlay
Netzwerks
Jetzt, da das Netzwerk erstellt wurde, kannst du Container und Services starten, die mit diesem Netzwerk verbunden sind.
Beispiel für die Verwendung eines overlay
Netzwerks für Services
In Docker Swarm
kannst du Services verwenden, um Container zu verwalten. Lass uns ein paar Services erstellen, die mit dem overlay
Netzwerk verbunden werden.
Schritt 1: Erstellen eines Webserver-Services
docker service create --name webserver --network my_overlay_network -p 8080:80 nginx
Dieser Befehl erstellt den Service webserver
, der mit dem Netzwerk my_overlay_network
verbunden ist. Der Webserver ist unter der Adresse http://localhost:8080 erreichbar.
Schritt 2: Erstellen eines Datenbank-Services
docker service create --name database --network my_overlay_network -e POSTGRES_PASSWORD=mysecretpassword postgres
Hier wird der Service database
erstellt, der mit demselben Netzwerk verbunden ist, wobei die Umgebungsvariable POSTGRES_PASSWORD
gesetzt wird.
Schritt 3: Verbindung zwischen Services testen
Starte einen temporären Container, um die Verbindung zwischen Services zu überprüfen:
docker run -it --network my_overlay_network busybox
Innerhalb des Containers kannst du die Befehle ping
verwenden, um die Verbindung mit dem Webserver und der Datenbank zu testen:
ping webserver
ping database
Wenn die Einrichtung korrekt ist, zeigt der Ping einen erfolgreichen Verbindungsaufbau, der bestätigt, dass die Container über Hostnamen miteinander kommunizieren können.
Schritt 4: Status der Services anzeigen
Verwende den Befehl docker service ls
, um den Status der erstellten Services zu überprüfen:
docker service ls
Die erwartete Ausgabe zeigt Informationen über die laufenden Services, ihren Status und die Anzahl der Replikate.
Hinweis: Das overlay
Netzwerk ermöglicht es Containern auf verschiedenen Hosts, miteinander zu kommunizieren, wenn sie mit demselben Swarm
-Cluster verbunden sind.
7.4 Beispiele für die Verwendung des overlay
-Netzwerks in Docker Compose
Docker Compose
vereinfacht die Verwaltung von Multi-Container-Anwendungen und Netzwerken. Du kannst ein overlay Netzwerk definieren und es zur Kommunikation zwischen Containern in der docker-compose.yml
-Datei verwenden.
Beispiel für eine docker-compose.yml
-Datei:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8080:80"
networks:
- my_overlay_network
db:
image: postgres:latest
environment:
POSTGRES_PASSWORD: meinGeheimesPasswort
networks:
- my_overlay_network
networks:
my_overlay_network:
driver: overlay
attachable: true
Starten von Docker Compose
:
docker stack deploy -c docker-compose.yml mystack
Dieser Befehl deployt den Stack mithilfe der Datei docker-compose.yml
und erstellt Services, die mit dem Netzwerk my_overlay_network
verbunden sind.
Praxistipps:
- Netzwerküberwachung: Verwende Monitoring-Tools wie Docker Dashboard oder Prometheus, um den Zustand des Netzwerks und die Interaktion zwischen Containern im Auge zu behalten.
- Skalierbarkeit verwalten: Overlay Netzwerke unterstützen die dynamische Hinzufügung und Entfernung von Nodes. Stelle sicher, dass die Netzwerkressourcen richtig konfiguriert sind, um Anwendungen zu skalieren.
- Backup von Konfigurationen: Speichere regelmäßig die Konfigurationen von Netzwerken und Stacks, um sie im Falle von Problemen schnell wiederherstellen zu können.
GO TO FULL VERSION