Docker komponieren Lastausgleich und Skalierung

Docker komponieren Lastausgleich und Skalierung
Docker Compose ist eine beliebte und zentrale Komponente von Docker, die allgemein zur Verarbeitung und Verwaltung mehrerer Container-Apps und -Dienste verwendet wird. Da Docker Compose Multicontainer-Anwendungen ausführt, muss diese Dienste oder Container mit Bedacht verwaltet werden. Dank Docker können wir mit Skalierung und Ladeausgleich mehrere Dienste effizient verwalten und ausführen.

In diesem Blog wird zeigen, wie Skalierung und Ladeausgleich in Docker Compose implementiert werden kann.

So skalieren Sie die Dienste in Docker Compose?

Skalierung in Docker bedeutet, Nachbildungen von Komponierungsdiensten oder Containern vorzunehmen. Diese Repliken werden auf dem Host verwaltet. Um die Skalierung in Docker Compose zu implementieren, gehen Sie die angegebenen Anweisungen durch.

Schritt 1: Dockerfile erzeugen
Generieren Sie eine Dockerfile, die den Golang Containerie “Main1.gehen" Programm. Fügen Sie zu diesem Zweck den bereitgestellten Code in die Datei ein:

Von golang: 1.8
WorkDir/Go/SRC/App
Main1 kopieren.gehen .
Run Go Build -o -Webserver .
Entdecken Sie 8080: 8080
EINSTIEGSPUNKT ["./Webserver "]

Schritt 2: Kompose -Datei generieren
Erstellen Sie als nächstes eine andere Datei mit dem Namen “Docker-Compose.YMLDatei und fügen Sie die folgenden Anweisungen ein:

Version: "Alpine"
Dienstleistungen:
Netz:
bauen: .
Häfen:
- 8080

Hier:

  • Dienstleistungen”Wird verwendet, um den Docker-Compose-Dienst zu erstellen und zu konfigurieren. Zu diesem Zweck haben wir die “konfiguriert“Netz" Service.
  • bauen”Wird verwendet, um die Dockerfile anzugeben. Im angegebenen Codeblock verwendet der Build -Schlüssel die oben genannte Dockerfile.
  • Häfen”Entdecken Sie Ports für Container. Hier haben wir das benutzt8080" anstatt "8080: 8080”. Dies liegt daran, dass wenn wir die verschiedenen Dienste skalieren, den bindenden Port8080”Wird nur einem Dienst zugewiesen, und der andere erzeugt den Fehler. Der "Häfen" Wert "8080”Ermöglicht Docker, die Ports den Diensten im Host -Netzwerk automatisch zuzuweisen:

Alternativ können Benutzer die “zuweisen“Häfen"Wert im Bereich wie"80-83: 8080”. Dadurch werden die exponierenden Ports innerhalb des angegebenen Bereichs automatisch jedem Container oder Service zugewiesen.

Schritt 3: Starten Sie die Behälter auf
Als nächstes starten Sie die Behälter mit dem “Docker-Compose Up" Befehl. Um das zu replizieren “Netz"Service, nutzen Sie die"-Skala"Option zusammen mit dem"=Wert wie unten gezeigt:

Docker-compose up-scale web = 2

Schritt 4: LISTE COMPOSE Container
Listen Sie die Container komponieren und überprüfen Sie, ob die Skalierungsdienste ausführen oder nicht:

Docker -Compose ps -a

Sie können zwei Nachbildungen der “sehen“Netz"Service läuft weiter"61844" Und "61845”Lokale Host -Ports:

Zur Bestätigung navigieren Sie zu den zugewiesenen Ports des lokalen Hosts und überprüfen Sie, ob der Dienst ausgeführt wird oder nicht.

Es kann beobachtet werden, dass das “NetzDer Service wurde erfolgreich auf zugewiesenen Ports ausgeführt:

So implementieren Sie Lastausgleich in Docker Compose?

Der Load Balancer ist eine der besten Lösungen für die Verwaltung des Datenverkehrs von verschiedenen Containern oder Clients auf dem Server. Es erhöht die Zuverlässigkeit und Verfügbarkeit von Anwendungen und Dienstleistungen. Im Backend werden unterschiedliche Routing -Kriterien verwendet, um die Multi -Container -Anwendungen wie Round Robin zu verwalten.

Verwenden Sie die angegebenen Anweisungen zur Implementierung der Lastausgleichstechnik für Komponierungsdienste.

Schritt 1: Erstellen Sie “nginx.conf ”Datei
Erstelle ein "nginx.ConfDatei Datei und fügen Sie den folgenden Code in die Datei ein. Diese Anweisungen umfassen:

  • stromaufwärts"Mit dem Namen"alle”Geben Sie den vorgelagerten Dienst an. Hier können Sie so viele Dienste angeben, wie Sie für die Verwaltung benötigt werden. Zum Beispiel haben wir die "definiert"NetzDer Service wird voraussichtlich auf Port 8080 freigelegt.
  • Im "Server"Wir haben den Höranschluss festgelegt"8080"Für den Nginx Load Balancer und bestanden den Stellvertreter"http: // alle/”Um den Upstream -Dienst zu verwalten:
Benutzer nginx;
Veranstaltungen
Worker_Connections 1000;

http
stromaufwärts alle
Server -Web: 8080;

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


Schritt 2: Konfigurieren Sie den Nginx-Service für den Ladeausgleich in „Docker-Compose.YML -Datei
Konfigurieren Sie als Nächstes den Lastausgleich ““nginx"Service im"Docker-Compose" Datei. Zu diesem Zweck haben wir die folgenden Schlüssel angegeben:

  • Bild"Definiert das Basisbild für die"nginx" Service.
  • Bände"Wird verwendet, um die" zu binden "nginx.Conf”Auf den Zielweg des Containers.
  • kommt drauf an”Gibt, dass das“nginx"Der Service hängt von der" ab "Netz" Service:
  • Häfen”Geben Sie den Höranschluss des Lastausgleichs -Nginx -Dienstes an:
Version: "Alpine"
Dienstleistungen:
Netz:
bauen: .
nginx:
Bild: Nginx: Neueste
Bände:
- ./nginx.conf:/etc/nginx/nginx.Conf: Ro
kommt drauf an:
- Netz
Häfen:
- 8080: 8080

Schritt 3: Ausführen von Containern ausführen
Führen Sie nun den Kompose -Container zusammen mit dem “aus-SkalaOption zur Ausführung der Webdienst -Replikate:

Docker-compose up-scale web = 2

Hier werden diese Webdienste -Repliken im Last -Balancer -Service verwaltet “nginx”:

Navigieren Sie durch den Höranschluss der “nginx”Service und überprüfen Sie, ob der Lastbilanz die beiden Container des Webdienstes auf demselben Port verwaltet oder nicht. Aktualisieren Sie die Seite, um zum zweiten Container zu wechseln, und aktualisieren Sie die Seite erneut, um zum ersten Container zu wechseln:

Hier dreht sich alles um Docker Compose Lastausgleich und Skalierung.

Abschluss

Lastausgleich und Skalierung sind Techniken, um die Verfügbarkeit und Zuverlässigkeit der Anwendung zu erhöhen. Die Docker -Skalierung generiert die Replikate bestimmter Dienste und laden Balancer -Balance oder verwaltet den Datenverkehr zu und von verschiedenen Containern auf dem Server. Zu diesem Zweck haben wir verwendet “nginx”Als Lastausgleicher. Dieser Blog hat demonstriert, dass Docker Lastausgleich und Skalierung komponieren.