Detaillierte Erläuterung der Hochverfügbarkeitskonfiguration von Docker

Detaillierte Erläuterung der Hochverfügbarkeitskonfiguration von Docker

Docker Compose

Docker Compose unterteilt die verwalteten Container in drei Ebenen: Projekt, Dienst und Container. Alle Dateien im Verzeichnis, in dem Docker Compose ausgeführt wird (docker-compose.yml, Erweiterungsdateien oder Umgebungsvariablendateien usw.), bilden ein Projekt. Wenn kein spezieller Projektname angegeben ist, wird der aktuelle Verzeichnisname verwendet. Ein Projekt kann mehrere Dienste enthalten und jeder Dienst definiert das Image, die Parameter und die Abhängigkeiten des ausgeführten Containers. Ein Dienst kann mehrere Containerinstanzen umfassen. Docker Compose löst das Problem des Lastausgleichs nicht, daher sind andere Tools erforderlich, um die Diensterkennung und den Lastausgleich zu erreichen.

Installieren Sie Docker Compose

Holen Sie sich docker-compose-linux-x86_64 und legen Sie es in das Verzeichnis /bin, erstellen Sie einen Softlink und fügen Sie Ausführungsberechtigungen hinzu

chmod +x docker-compose-linux-x86_64
ln -s Docker-Compose-Linux-x86_64 Docker-Compose

Importieren Sie Haproxy und Nginx, um nachfolgende Lastausgleichstests zu erleichtern

Docker-Ladung -i HaProxy
Docker-Laden -i nginx

Schreiben Sie die Compose-Konfigurationsdatei in /tmp/

[root@foundation50 komponieren]#vim docker-compose.yml 


Erstellen und installieren Sie den httpd-Dienst und starten Sie die httpd-Datei im web1-httpd-Dienst

[root@foundation50 verfassen]#vim web1/Dockerfile
VON rhel7:v1 
AUSSETZEN 80 
Führen Sie den Befehl yum install -y httpd aus. 
HINZUFÜGEN von index.html /var/www/html 
CMD ["/usr/sbin/httpd","-D","VORDERGRUND"]

Erstellen Sie eine haproxy.cfg-Konfigurationsdatei in haproxy

Überprüfen

Haproxy-Statistiken anzeigen

Besuchen Sie 172.25.50.1

Gesundheitscheck

Web3 herunterfahren


Docker-Schwarm

Vorbereiten von drei virtuellen Maschinen

Installieren Sie Docker auf Server1, Server2 und Server3 und starten Sie den Dienst

Sie müssen Docker Swarm Init auf einem Knoten ausführen und dann den Join-Befehl auf anderen Knoten ausführen.

[root@server1 ~]# Docker Swarm-Init 
[root@server2~]#Docker Swarm beitreten \
>--tokenSWMTKN-1-51igcdpg4cbgaokq535qis01osel396of153sdlp8k0ljn0rou-2m9sltwkc4uq1vfmp79ous0e4 \ 
> 172.25.50.2:2377 Dieser Knoten ist einem Schwarm als Arbeiter beigetreten.

Überprüfen Sie den Knotenstatus auf Server1


Nginx wurde zuvor importiert, und dann wurde flsak auf drei Maschinen importiert

[root@server1 ~]# docker load -i flask.tar
[root@server2 ~]# docker load -i flask.tar
[root@server3 ~]# docker load -i flask.tar

Um den Lastausgleich verschiedener Backends zu unterscheiden, wird eine Anweisung, die den Hostnamen anzeigt, in Python geschrieben und in Flask und OS importiert.


Öffnen Sie das Flask-Image und legen Sie das Skript demo.py unter root ab.


einreichen

[root@server1 python]# Docker-Commit vm1 python:demo

Erstellen Sie einen Cluster mit dem Namen Flask, starten Sie drei Backend-Serviceknoten und lesen Sie das Skript demo.py unter Python

prüfen

[root@foundation50 Docker]# für i in {1..10}:do curl -w "\n" http://172.25.50.1;fertig 


Da es drei Server gibt, wird jedes dritte Mal eine Abfrage durchgeführt, wodurch ein Lastenausgleich erreicht wird

Visuelle Webüberwachungsschnittstelle von Docker Swarm

Importieren Sie das Bild und erstellen Sie

[root@server1 ~]# docker load -i visualizer.tar
[root@server1 ~]# Docker-Dienst erstellen --name=viz --publish=8080:8080/tcp --constrain=node.role==manager --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock dockersamples/visualizer

Überwachungsseite anzeigen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

<<:  So ändern Sie das ursprüngliche Passwort von MySQL auf dem MAC

>>:  Zusammenfassung der vier Möglichkeiten zum Durchlaufen eines Arrays in JS

Artikel empfehlen

So deinstallieren Sie MySQL 5.7.19 unter Linux

1. Finden Sie heraus, ob MySQL zuvor installiert ...

So wählen Sie den richtigen Index in MySQL

Schauen wir uns zunächst eine Kastanie an EXPLAIN...

Web-Frontend-Entwicklung CSS-bezogene Teamzusammenarbeit

Die Frontend-Entwicklungsabteilung wächst, die Mi...

Eine benutzerfreundliche Alternative in Linux (Befehl fd)

Der Befehl fd bietet eine einfache und unkomplizi...

So erstellen Sie geplante Aufgaben mit dem Crond-Tool in Linux

Vorwort Crond ist ein Tool zur geplanten Ausführu...

Führen Sie die Schritte zum Erstellen eines Squid-Proxyservers unter Linux aus.

Vorwort Dieser Artikel stellt hauptsächlich die r...

CSS3 verwendet scale() und rotate() zum Zoomen und Drehen

1. scale()-Methode Zoom steht für „Verkleinern“ u...

Detaillierte Erläuterung des Problemfalls beim Löschen des Vue KeepAlive-Cache

Keepalive wird häufig zum Caching in Vue-Projekte...

MySQL-Abfrageoptimierung: Ursachen und Lösungen für langsame Abfragen

Freunde, die in der Entwicklung tätig sind, insbe...

HTML+CSS zum Erstellen eines geschichteten Pyramidenbeispiels

Dieser Artikel stellt hauptsächlich das Beispiel ...