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
Inhaltsverzeichnis Hintergrund 1. Was ist DNS-Pre...
Inhaltsverzeichnis Was ist ein Agent Grundkenntni...
Navigation, kleine Datenmenge Tabelle, zentriert &...
Installieren Sie MySQL unter Windows zu Ihrer Inf...
Inhaltsverzeichnis 1. Was ist Lazy Loading? 2. Im...
Haben Sie schon einmal eine Situation erlebt, in d...
In diesem Artikel werden hauptsächlich mehrere Pl...
<br />Zuvor haben wir gelernt, wie man Zelll...
Den Ergebnissen zufolge gibt es für die Definitio...
<br />Original: http://uicom.net/blog/?p=762...
Wann wird die Tabelle eingesetzt? Tabellen werden...
Finden Sie das Problem Heute bin ich auf ein Prob...
Inhaltsverzeichnis 1. Einleitung 2. Mehrere wicht...
Inhaltsverzeichnis Partitionierungsmechanismus SE...
Syntaxformat: row_number() über (Partition durch ...