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 fügen Sie Bilder in HTML-Seiten ein und fügen Kartenindexbeispiele hinzu

1. Im Web unterstützte Bildformate: GIF: kann 256...

Das WeChat-Applet realisiert die Funktion zum Hochladen von Bildern

In diesem Artikelbeispiel wird der spezifische Co...

Axios storniert Anfragen und vermeidet doppelte Anfragen

Inhaltsverzeichnis Herkunft Status Quo Anfrage ab...

In einem Artikel erfahren Sie, wie Sie ein Vue-Plugin schreiben

Inhaltsverzeichnis Was ist ein Plugin Plugins sch...

So installieren und konfigurieren Sie den Apache-Webserver

Erfahren Sie, wie Sie Ihre eigene Website auf Apa...

Wie wirkt sich der zusammengesetzte Index von MySQL aus?

Inhaltsverzeichnis Hintergrund Zusammengesetzte I...

Reflexion und Proxy in Front-End-JavaScript

Inhaltsverzeichnis 1. Was ist Reflexion? 2. Refle...

So stellen Sie per SSH eine Verbindung zum Docker-Server her

Als ich zum ersten Mal mit Docker in Berührung ka...

Lösung für das Problem des achtstündigen Unterschieds bei der MySQL-Einfügezeit

Lösen Sie das Problem des achtstündigen Zeitunter...

So stellen Sie K8s in Docker bereit

K8s k8s ist ein Cluster. Es gibt mehrere Namespac...