1. Was ist Docker Swarm? Docker Swarm ist ein offiziell von Docker bereitgestelltes Clusterverwaltungstool. Seine Hauptfunktion besteht darin, mehrere Docker-Hosts zu einem Ganzen zu abstrahieren und verschiedene Docker-Ressourcen auf diesen Docker-Hosts über einen einheitlichen Eingang zu verwalten. Swarm ähnelt Kubernetes, ist jedoch leichter und verfügt über weniger Funktionen als Kubernetes. Docker Swarm ist wie Docker Compose das offizielle Container-Orchestrierungsprojekt von Docker. Der Unterschied besteht darin, dass Docker Compose ein Tool zum Erstellen mehrerer Container auf einem einzelnen Server oder Host ist, während Docker Swarm Container-Clusterdienste auf mehreren Servern oder Hosts erstellen kann. Für die Bereitstellung von Microservices ist Docker Swarm offensichtlich besser geeignet. Seit Docker 1.12.0 ist Docker Swarm in der Docker-Engine (Docker Swarm) enthalten und es ist ein Tool zur Diensterkennung integriert. Wir müssen Etcd oder Consul nicht mehr wie zuvor für die Diensterkennung konfigurieren. 2. Docker Swarm-Architektur Tatsächlich handelt es sich bei diesem Diagramm insgesamt um einen sogenannten Cluster, der einem oder mehreren tatsächlichen Servern entsprechen kann. Auf jedem Server ist Docker installiert und die HTTP-basierte Docker-API ist aktiviert. Dieser Cluster verfügt über einen SwarmManager-Manager, der zum Verwalten der Containerressourcen im Cluster verwendet wird. Das Verwaltungsobjekt des Managers befindet sich nicht auf Serverebene, sondern auf Clusterebene. Das heißt, über den Manager können wir dem Cluster nur allgemeine Anweisungen erteilen, aber nicht angeben, was auf einem bestimmten Server zu tun ist (das ist auch die Essenz von Swarm). Was die spezifische Methode zur Implementierung der Verwaltung betrifft, stellt der Manager der Außenwelt eine HTTP-Schnittstelle zur Verfügung, und externe Benutzer verwalten den Cluster über diese HTTP-Schnittstelle. Bei etwas größeren Clustern ist es am besten, einen tatsächlichen Server als dedizierten Manager bereitzustellen. Zu Lernzwecken können Sie den Manager und den verwalteten Server auch auf demselben Server platzieren. 3. Rolling Update des Docker Swarm Service Docker Swarm ermöglicht reibungslose Service-Upgrades, d. h., die Dienste werden ohne Ausfallzeiten aktualisiert, ohne dass die Clients davon etwas merken. Lassen Sie uns dies anhand eines konkreten Beispiels demonstrieren. Hier werden wir einen nginx-basierten Webanwendungsdienst auf dem Knotenknoten bereitstellen. Wir werden zwei Versionen derselben Anwendung erstellen: Version 1 und Version 2 Erstellen Sie eine Docker-Datei und kompilieren Sie sie mit Docker Build. VON nginx RUN echo '<h1>Swarm:Version 1 <h1>' > /usr/share/nginx/html/index.html Hinweis: Um das Image jedem Knoten im Swarm-Cluster zugänglich zu machen, laden wir das generierte Image in unser eigenes Image-Repository hoch. Docker-Anmeldung Docker-Build -t collenzhao/mynginx:v1. Docker Push Collenzhao/Mynginx:v1 Erstellen Sie einen Swarm-Dienst, d. h. starten Sie den Container über das Image Docker-Dienst erstellen -p 7788:80 --Replikate 3 --Name myswarmtest collenzhao/mynginx:v1 Zeigen Sie die bereitgestellten Dienste über den Docker-Dienst LS an. Zeigen Sie die detaillierten Informationen des bereitgestellten Dienstes über den Docker-Dienst ps myswarmtest an Der Effekt ist in der folgenden Abbildung dargestellt Aktualisieren Sie das vorherige Dockerfile. Beachten Sie, dass die Versionsnummer lautet: 2 VON nginx RUN echo '<h1>Swarm:Version 2 <h1>' > /usr/share/nginx/html/index.html Kompilieren mit Docker Build Docker-Build -t collenzhao/mynginx:v2. Hochladen zum Docker Hub mit Docker Push Docker Push Collenzhao/Mynginx:v2 Aktualisieren Sie den zuvor in Swarm bereitgestellten Dienst. Die Versionsnummer lautet 2. Docker-Dienstaktualisierung – Bild collenzhao/mynginx:v2 myswarmtest Die Wirkung ist wie folgt Damit ist dieser Artikel über Beispielcode zur Implementierung von Rolling Updates von Diensten mit Docker Swarm abgeschlossen. Weitere Informationen zu Rolling Updates von Docker Swarm finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Methoden und Schritte zum Upgrade von MySql5.x auf MySql8.x
>>: js+css zur Realisierung eines dreistufigen Navigationsmenüs
Dieser Artikel zeigt Ihnen eine verschiebbare Fot...
Flash-Dateiformate: .FLV und .SWF Für das Flash-Vi...
Wenn Sie wissen möchten, wie Sie diese Tabelle mi...
In MySQL können Sie die SQL-Anweisung „rename tab...
1. Schritte zur Installation des RPM-Pakets: 1. S...
Laut canisue (http://caniuse.com/#search=border-r...
Die default_server-Direktive von nginx kann einen...
Ich habe kürzlich an einem Framework gearbeitet, ...
In den letzten Jahren meiner Karriere habe ich an...
Frage: Ich habe in Vue ein Formular zum Hochladen...
Verwenden Sie natives JavaScript, um den Countdow...
Es gibt eine neue Funktion, die das Erfassen eine...
1. Übersicht Die Datenbank information_schema ist...
Ergebnis:Implementierungscode html <nav class=...
Inhaltsverzeichnis Umgebungsbeschreibung Docker-I...