So setzen Sie mehrere Containeranwendungen mit dem Lastausgleich auf demselben Port frei

So setzen Sie mehrere Containeranwendungen mit dem Lastausgleich auf demselben Port frei
Docker Compose COMPOSE LINE UNTRIGUNG VON DOCKER -Lösung ermöglicht es uns, mehrere Containeranwendungen und andere Microservices in separaten Containern auszuführen. Es ist jedoch unmöglich, mehr als einen Container am selben Port direkt auszuführen. Zu diesem Zweck verwenden Docker -Benutzer unterschiedliche Techniken, wie z. B. ein Routing -Schema, SO_RUSEport oder Reverse Proxy/Lastausgleich.

In diesem Blog wird veranschaulicht.

So setzen Sie mehrere Containeranwendungen mit dem Lastausgleich auf demselben Port frei?

Der Lastausgleich oder der Reverse -Proxy ist eine Technik, um den Datenverkehr von verschiedenen Containern auf einem Server zu verteilen. Der Lastausgleich kann unterschiedliche Routing -Algorithmen verwenden, z. Dies kann die Verfügbarkeit, Fähigkeit und Zuverlässigkeit der Anwendung erhöhen.

Verwenden Sie zur Abbildung das genannte Verfahren.

Schritt 1: Erstellen Sie Dockerfile

Erstellen Sie zunächst eine Dockerfile, um die Anwendung zu containieren. Zum Beispiel haben wir die Anweisungen definiert, um das zu containerierenhauptsächlich.gehen”App:

Von golang: 1.8
WorkDir/Go/SRC/App
Hauptkopie.gehen .
Run Go Build -o -Webserver .
EINSTIEGSPUNKT ["./Webserver "]

Hier haben wir zwei verschiedene “hauptsächlich.gehenProgramme in zwei verschiedenen Verzeichnissen. In unserem Szenario verwendet das erste Programm Dockerfile, um den Dienst zu konfigurieren:

Das zweite Programm hat auch das gleiche Dockerfile in seinem Verzeichnis. Mit dieser Datei haben wir das neue Docker -Bild erstellt “Go1-ImageMit deren Konfiguration des zweiten Dienstes in der Datei komponieren. Um das Bild zu erstellen oder zu erstellen, können Sie unseren zugehörigen Artikel durchlaufen:

Schritt 2: Kompose -Datei erstellen

Erstellen Sie als Nächstes eine Komponierungsdatei mit dem Namen “Docker-Compose.YMLDatei mit den folgenden Anweisungen:

  • Dienstleistungen"Konfigurieren Sie die drei verschiedenen Dienste"Netz","Web1", Und "nginx”. Der "Web" -Dienst wird das erste Programm ausführen, der "Web1" -Dienst wird das zweite Programm ausführen und “nginx”Wird als Lastbilanz ausgeführt, um den Verkehr aus verschiedenen Containern auszugleichen oder zu verwalten.
  • "Web" verwendet die Dockerfile, um den Dienst zu containieren. Der "Web1" -Dienst wird jedoch das Bild verwenden "Go1-Img”Um das zweite Programm zu containieren.
  • BändeDie Taste wird verwendet, um den Nginx anzubringen.Conf -Datei zum NGINX -Container, um die Dienste vorgelöst zu haben.
  • kommt drauf an"Key gibt an, dass das"nginx"Service hängt von" Web "und" Web1 "-Diensten ab.
  • HäfenSchlüssel definiert den exponierenden Port des Nginx -Lastausgleichs, bei dem Upstream -Dienste ausgeführt werden:
Version: "Alpine"
Dienstleistungen:
Netz:
bauen: .
Web1:
Bild: Go1-Img
nginx:
Bild: Nginx: Neueste
Bände:
- ./nginx.conf:/etc/nginx/nginx.Conf: Ro
kommt drauf an:
- Netz
- Web1
Häfen:
- 8080: 8080

Schritt 3: Erstellen Sie “nginx.conf ”Datei

Danach erstellen Sie die “nginx.Conf"Datei und konfigurieren Sie die Upstream -Dienste, Höranschluss des Load Balancer und definieren Sie den Proxy"http: // alle/”Um die vorgelagerten Dienste zu verwalten:

Benutzer nginx;
Veranstaltungen
Worker_Connections 1000;

http
stromaufwärts alle
Server -Web: 8080;
Server Web1: 8080;

Server
Hören Sie 8080;
Standort /
proxy_pass http: // alle/;


Schritt 4: Starten Sie die Behälter auf

Führen Sie das ausDocker-Compose UpBefehl, die Dienste in getrennten Containern zu starten. Hier "-SkalaDie Option wird verwendet, um die beiden Repliken des ersten oder zu generierenNetz" Service:

Docker -Compose Up -scale Web = 2

Für die Überprüfung gehen Sie zum exponierenden Hafen der “nginxServicecontainer und überprüfen Sie, ob er den Stream aus angegebenen Diensten akzeptiert oder nicht:

Aus der oben gegebenen Ausgabe kann beobachtet werden, dass wir mehrere Container oder Dienste am selben Port erfolgreich ausgeführt haben.

Abschluss

Erstellen Sie zunächst die Ausführung oder Freigabe der mehreren Containeranwendungen im selben Port mit einem Lastbalancer/Reverse -Proxy "nginx.ConfDatei zum Konfigurieren der Lade -Balancer -Konfigurationen wie Vorsteuerdienste, Hörports und Proxy, um den Dienst vorgelöst zu haben. Konfigurieren Sie dann den Lastausgleichsdienst in der Datei komponieren. Dieser Blog hat gezeigt, wie mehrere Container oder Dienste auf demselben Port freigelegt und ausgeführt werden können.