Einführung in die Docker Swarm-Architektur
Docker Swarm ist ein Clustering- und Orchestrierungs-Tool für Container, das in Docker Engine für das verteilte System mit Hunderten von Containern integriert ist. Docker Node-, Docker Services- und Docker-Tasks sind Schlüsselkomponenten der Docker-Schwarmarchitektur.
- Docker-Knoten: Es handelt sich um die Docker-Engine-Instanz, die im Docker-Schwarm enthalten ist. Es gibt zwei Arten:
- Manager-Knoten: Verantwortlich für alle Orchestrierungs- und Containerverwaltungsaufgaben, die erforderlich sind, um das System im gewünschten Status zu halten, z. B. das Beibehalten des Cluster-Status, das Planen der Dienste und das Warten der HTTP-Endpunkte im Schwarmmodus.
- Docker Service: Dies ist die Aufgabendefinition, die ausgeführt werden muss.
Typische Docker-Schwarmarchitektur
Nachfolgend sind die Punkte für eine typische Docker-Schwarmarchitektur aufgeführt:
- Der Knoten ist das Schlüsselelement der Docker-Schwarmarchitektur. In einer Schwarmarchitektur können mehrere Managerknoten von einem einzelnen Managerknoten geleitet werden, der mit dem Raft-Algorithmus ausgewählt wurde. Ein Managerknoten kann auch als Arbeiterknoten, aber als Manager konfiguriert werden Knoten auch.
- Manager-Knoten verwenden den Raft Consensus-Algorithmus, um den Clusterstatus intern zu verwalten. Dadurch wird sichergestellt, dass alle Manager-Knoten, die Aufgaben im Cluster planen und steuern, einen konsistenten Status beibehalten bzw. speichern.
- Ein Schwarm ist ein Cluster von Docker-Engines oder Knoten, auf denen wir unsere Dienste bereitstellen. Zu Beginn entwickelte Docker ein Cluster-Management-System mit einem Kommunikationsprotokoll namens Beam. Später fügten sie weitere APIs hinzu und benannten sie in "Schwarm" um. Der Schwarm der ersten Generation heißt "Schwarm v1".
Arbeitsablauf von Docker Swarm
Der Workflow von Docker-Schwarm besteht darin, zu verstehen, wie Knoten und Dienste in einer Docker-Schwarm-Architektur funktionieren:
Schritt 1: Der erste Schritt besteht darin, eine Gruppe von Docker-Maschinen zu erstellen, die als Knoten im Docker-Schwarm fungieren. Einer dieser Knoten ist der Manager, die verbleibenden Knoten fungieren als Worker-Knoten. Starten Sie das Docker-Terminal, um einen Docker-Computer mit dem Befehl unter Windows zu erstellen.
docker-machine create –driver hyperv manager1
- Wobei 'manager1' der Name der Docking-Maschine ist, um die Maschinen aufzulisten und sie auszuführen.
docker-machine ls
docker-machine ip manager1
Schritt 2: Der zweite Schritt besteht darin, Arbeitscomputer zu erstellen. Verwenden Sie den folgenden Befehl, um so viele Arbeitscomputer zu erstellen, wie Sie möchten. Hier erstellen wir drei Arbeitscomputer.
docker-machine create –driver hyperv worker1
docker-machine create –driver hyperv worker2
docker-machine create –driver hyperv worker3
- Mit dem folgenden Befehl können wir eine Verbindung zum Manager oder Mitarbeiter herstellen, sodass Sie in die Maschine gelangen.
docker-machine ssh manager1/worker1
Schritt 3: Schritt 3 ist die Initialisierung des Docker-Schwarms. Wir müssen diesen Befehl auf dem Computer ausführen, auf dem wir als Manager arbeiten möchten. Auf diese Weise können wir Knoten-Manager erstellen und weitere Manager hinzufügen.
docker-machine ssh manager1
docker swarm init –advertise-and Manager1 IP
Schritt 4: Schritt 4 besteht darin, die Worker-Knoten zum Schwärmen zusammenzufügen, den Befehl zum Zusammenfügen von Knoten als Worker mithilfe des folgenden Befehls auf dem Manager-Computer abzurufen und den Befehl auszuführen, den Sie auf dem Worker-Computer haben, den Sie zum Worker machen möchten.
Docker swarm join-token worker1
- Um zu überprüfen, ob der Worker Mitglied des Schwarms ist oder nicht, rufen Sie den Manager-Computer auf und führen Sie den Befehl aus. Daraufhin wird der hinzugefügte Worker-Computer mit Manager-Details aufgelistet.
docker-machine ls
Schritt 5: In Schritt 5 werden die Docker-Standardbefehle auf dem Manager ausgeführt.
docker info (fetches details about docker swarm)
docker swarm (commands that can run on docker swarm such as join, leave, update, init and unlock etc)
Schritt 6: In Schritt 6 werden die Docker-Container auf dem Docker-Schwarm ausgeführt. Wir können jeden Dienst und seine Replikate erstellen. Gehen Sie zu ub.docker.com, melden Sie sich an und suchen Sie nach Verwahrstellen. Wir können verschiedene Bilder sehen, die Engines sind. Zum Beispiel erstellt nginx (läuft auf einem Webserver) einen Dienst und die Replik des folgenden Befehls auf dem Manager.
docker service create –replicas 3 -p 80:80 –name sample nginx
- Dabei ist 'sample' der Dienstname und 80 der Port, der zur Überprüfung des Status des Diensts verfügbar gemacht wird, der unter dem Befehl auf dem Manager-Knoten ausgeführt wird.
docker service ls
docker service ps sample
Überprüfen Sie den Dienst, der auf allen Knoten ausgeführt wird, und überprüfen Sie den Browser, indem Sie die IP-Adresse für alle Knoten angeben.
Schritt 7: Schritt 7: Jetzt können wir die tatsächliche Verwendung des Docker-Schwarms sehen, bei dem wir den Service nach oben und unten skalieren. Führen Sie den folgenden Befehl auf dem Manager-Computer aus, um einen Dienst zu skalieren
docker service scale sample=4
- Mit dem obigen Befehl wird das Dienstbeispiel auf 4 Knoten ausgeführt, obwohl alle Knoten ausgelastet sind. Es wird ein weiterer Dienst auf Manager oder Worker erstellt. Auf ähnliche Weise können wir den Service verkleinern.
docker service scale sample=2
- Sie können den Knoten auch untersuchen, um die Details zu ermitteln, wie viele und welcher Dienst auf einem Knoten ausgeführt wird, indem Sie die folgenden Befehle auf dem Manager-Knoten ausführen
docker node inspect worker1/manager1
docker node inspect self
Schritt 8: Schritt 8 ist das Aktualisieren des Dienstes, wenn der Dienst auf mehreren Computern ausgeführt wird und wenn wir den Dienst sehr einfach aktualisieren möchten, zum Beispiel, wenn wir die Version des Dienstes nginx aktualisieren möchten.
docker service update –image nginx:1.14.0 sample
Schritt 9: Herunterfahren / Stoppen / Entfernen.
- Um einen bestimmten Knoten herunterzufahren, verwenden Sie den folgenden Befehl, der den Status des Knotens in "drain" ändert.
docker node update –availability drain worker1
- So entfernen Sie den Service von allen Maschinen.
docker service rm sample
- Um den Schwarm zu verlassen, ändert sich der Status des "down".
docker swarm leave
- So stoppen Sie einen Computer (Vom Docker-Terminal ausführen, nicht im Manager- oder Worker-Computer).
docker-machine stop worker1
docker-machine rm worker1
Vorteile der Docker Swarm-Architektur
Die folgenden Punkte zeigen die Vorteile der Docker-Schwarmarchitektur:
- Dezentrales Design: Wir können Schwarmcluster über den Befehl swarm verwalten. Es gibt eine einzige Zugriffsmöglichkeit, um den gesamten Schwarm zu erstellen.
- Es ist sehr einfach im Vergleich zu Kubernetes.
- Hochverfügbarkeit: Unter den in swarm verfügbaren Knoten, wenn der Master ausfällt, übernimmt ein anderer Arbeitsknoten die Aufladung.
- Gewünschter Statusabgleich: Der Schwarmmanager verfolgt den Clusterstatus, sodass der gewünschte und der tatsächliche Status immer gleich sind.
- Wenn wir ein Over-Netzwerk angeben, um eine Verbindung zu Ihren Diensten herzustellen, weist der Schwarm-Manager dem Container im Overlay-Netzwerk Adressen zu, sobald wir die Container erstellt / aktualisiert haben
- Laufende Updates: Service-Updates können schrittweise durchgeführt werden. Mit Swarm Manager können Sie die Verzögerung zwischen den einzelnen Updates ohne Ausfallzeiten festlegen.
Fazit
Docker Swarm ist ein einfaches Tool anstelle von großen Tools, die die Aufgabe erfüllen. Docker mit Swarm bietet die von uns benötigte Orchestrierung, ist einfach einzurichten und wird mit der Docker-Engine ausgeliefert, die wir trotzdem installieren und verwenden werden.
Empfohlene Artikel
Dies ist eine Anleitung zur Docker Swarm-Architektur. Hier diskutieren wir, wie Knoten und Dienste in einer Docker-Schwarmarchitektur mit ihren Vorteilen funktionieren. Sie können auch unsere anderen verwandten Artikel durchgehen, um mehr zu erfahren -
- Docker-Architektur
- Was ist Docker Swarm?
- Swarm Intelligence-Anwendungen
- Unterstützt die Schwarmtechnologie agile Teams beim Wachstum?