Ich habe einen 2-Knoten-Docker Schwarm mit einem Manager-Knoten pi-manager
und einem Arbeiterknoten pi-worker
auf einem Stapel von 2 Raspberry Pi 3 Modell 3 B mit Raspbian konfiguriert. Ich habe ein Bild erstellt, das eine Webseite vom Helloworld-Typ auf einem lokalen Host ausführt, die auch den Container identifiziert, auf dem die Seite ausgeführt wird. Beispiel:Load Balancing mit Docker-Schwarm
Vom Docker-Manager-Knoten den öffentlichen Dienst schaffen „flairhello“ und dann skaliert bis 2 continers (wir werden sie A und B nennen).
erwartetes Verhalten:
Das Verhalten, das ich erwartet zu bekommen war, dass, wenn ich jeden localhost besuchte ich würde die Webseite erhält den Container-ID Anzeige auf dem Host ausgeführt wird. Zum Beispiel, wenn pi-manager
hat Container A
und pi-worker
hat Container B
. Wenn ich localhost Adresse von pi-manager
besuche, würde ich erwarten, die Behälter Identifikation von A
zu sehen und wenn ich die localhost Adresse von pi-worker
besuche, würde ich erwarten, die Behälter Identifikation von B
zu sehen. Dies ist NICHT, was passiert.
Aktuelles Verhalten:
Das Verhalten, das ich erlebt habe ist, für gewisse Zeit, dass, wenn ich die localhost besuchen entweder pi-manager
oder pi-worker
ich gerichtet bin zu Container A
‚s Webseite und dann für die nächste Abschnitt der Zeit egal welchen localhost (pi-manager
oder pi-worker
) Ich besuche ich bin immer auf Container B
gerichtet. Ich denke, das ist der eingebaute Lastausgleich von Docker Schwarm?
Fragen:
Wie kann ich einen Load-Balancer verwenden Sie das Verhalten, das ich von meinem Schwarm wollen zu bekommen?
Welche Werkzeuge muss ich verwenden? Docker komponieren? Haproxy Bild? (Diese aus der Lektüre zu diesem Thema erwähnt gesehen
es irgendwelche guten Tutorials für diesen Prozess
UPDATE:?!
Schritte ein Network Load Balancer mit HAProxy in meiner Antwort unten erstellen
Im Entwicklung dieses Projekts als eine Art Beispiel Lastausgleich anzuzeigen, so dass, wenn ich auf eine Hauptseite gehen die Besucher auf diese beiden unterschiedlichen Behälter umgeleitet wird läuft auf 'pi-manager' und' pi-worker'. Wenn Sie also eine Seite aktualisieren, ist die Adresse des Containers anders und Sie können die Funktion zum Lastenausgleich darstellen. Ist dies mit Nginx oder HaProxy möglich? Thakk du für dein Beispiel Ich sehe, dass es eine klebrige Verbindung ist Wie genau funktioniert es? – ob1
glaubst du, ich kann diese Docker-Datei konvertieren, um mit der ARM-Architektur zu arbeiten? – ob1
Wenn auf dem Container kein laufender Webdienst ausgeführt wird, werde ich immer noch zu einem Knoten weitergeleitet, auf dem der Dienst ausgeführt wird? – ob1