CodeGym /Kurse /Docker SELF /Untersuchung von Overlay-Netzwerken

Untersuchung von Overlay-Netzwerken

Docker SELF
Level 18 , Lektion 1
Verfügbar

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:

  1. Kommunikation zwischen Containern auf verschiedenen Hosts: ermöglicht Netzwerkkommunikation zwischen Containern, die auf verschiedenen Knoten laufen.
  2. Isolation: erlaubt das Erstellen isolierter Netzwerkräume für verschiedene Anwendungen.
  3. 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.

Terminal

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:

Terminal

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:

Terminal

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:

Terminal

docker network ls

Beispielausgabe:

Terminal

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

Terminal

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

Terminal

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:

Terminal

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:

Terminal

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:

Terminal

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:

Yaml

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:

Terminal

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:

  1. Netzwerküberwachung: Verwende Monitoring-Tools wie Docker Dashboard oder Prometheus, um den Zustand des Netzwerks und die Interaktion zwischen Containern im Auge zu behalten.
  2. 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.
  3. Backup von Konfigurationen: Speichere regelmäßig die Konfigurationen von Netzwerken und Stacks, um sie im Falle von Problemen schnell wiederherstellen zu können.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION