Heim >System-Tutorial >LINUX >Fügen Sie Worker-Knoten zum Swarm der Docker-Engine hinzu!

Fügen Sie Worker-Knoten zum Swarm der Docker-Engine hinzu!

WBOY
WBOYnach vorne
2023-12-28 11:05:141154Durchsuche
Einführung Lasst uns die Arbeit fortsetzen, die wir vor ein paar Wochen in CentOS 7.2 begonnen haben. In diesem Leitfaden haben wir gelernt, wie man die in Docker 1.12 integrierten nativen Clustering- und Orchestrierungsfunktionen initialisiert und startet. Aber wir haben nur den Manager-Knoten und keine anderen Worker-Knoten. Heute werden wir darauf näher eingehen.

Ich zeige Ihnen, wie Sie asymmetrische Knoten zu Sawrm hinzufügen, wie zum Beispiel einen Fedora 24 neben CentOS, und beide werden dem Cluster beitreten, mit all dem tollen Lastausgleich und so weiter. Natürlich wird es kein Kinderspiel sein und wir werden auf einige Hindernisse stoßen, also sollte es ziemlich viel Spaß machen.
Docker 引擎的 Swarm中添加工作者节点!

Teaser

Voraussetzungen

Bevor wir weitere Knoten erfolgreich zu Swarm hinzufügen können, müssen wir mehrere Dinge tun. Idealerweise sollte auf allen Knoten dieselbe Docker-Version ausgeführt werden, die mindestens 1.12 sein sollte, um native Orchestrierungsfunktionen zu unterstützen. Wie bei CentOS verfügen auch die integrierten Repositorys von Fedora nicht über die neuesten Builds. Sie müssen daher manuell erstellen oder ein Docker-Repository verwenden, um die richtige Version manuell hinzuzufügen und zu installieren und einige Abhängigkeitskonflikte zu beheben. Ich habe Ihnen bereits gezeigt, wie es in CentOS geht, und der Vorgang ist der gleiche.
Darüber hinaus müssen alle Knoten miteinander kommunizieren können. Dies erfordert korrekte Routing- und Firewall-Regeln, damit Manager und Worker-Knoten miteinander kommunizieren können. Andernfalls können Sie den Knoten nicht zu Swarm hinzufügen. Die einfachste Lösung besteht darin, die Firewall-Regeln vorübergehend zu löschen (iptables -F), aber dies kann Ihre Sicherheit gefährden. Bitte stellen Sie sicher, dass Sie vollständig verstehen, was Sie tun, und erstellen Sie die richtigen Regeln für Ihre Knoten und Ports.

Fehlerantwort vom Daemon: Timeout wurde erreicht, bevor der Knoten hinzugefügt wurde. Der Versuch, dem Schwarm beizutreten, wird im Hintergrund fortgesetzt. Verwenden Sie den Befehl „Docker Info“, um den aktuellen Schwarmstatus Ihres Knotens anzuzeigen

Fehlerantwort vom Daemon: Zeitüberschreitung des Knotens vor dem Beitritt. Versuche, dem Schwarm beizutreten, werden im Hintergrund fortgesetzt. Verwenden Sie den Befehl „docker info“, um den aktuellen Swarm-Status des Knotens anzuzeigen.

Sie müssen dasselbe Docker-Image auf dem Host-Computer bereitstellen. Im vorherigen Tutorial haben wir ein Apache-Image erstellt. Sie müssen dasselbe auf Ihren Worker-Knoten tun oder das erstellte Image verteilen. Wenn Sie dies nicht tun, treten Fehler auf. Wenn Sie Hilfe beim Einrichten von Docker benötigen, lesen Sie meine Einführung und mein Web-Tutorial.

7vwdxioopmmfp3amlm0ulimcu \_ websky.11 my-apache2:latest
localhost.localdomain Shutdown Rejected 7 minutes ago
"No such image: my-apache2:lat&"
Jetzt starten Jetzt haben wir eine CentOS-Maschine gestartet und der Container wurde erfolgreich erstellt. Sie können über den Host-Port eine Verbindung zum Dienst herstellen und alles sieht gut aus. Derzeit hat Ihr Schwarm nur Manager.


Docker 引擎的 Swarm中添加工作者节点!

Manager

Treten Sie einem Arbeiter bei Um neue Knoten hinzuzufügen, müssen Sie den Join-Befehl verwenden. Sie müssen jedoch zunächst das Token, die IP-Adresse und den Port angeben, damit sich der Worker-Knoten ordnungsgemäß beim Swarm-Manager authentifizieren kann. Führen Sie dann (auf Fedora) Folgendes aus:

[root@localhost ~]# docker swarm join-token worker
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-0xvojvlza90nrbihu6gfu3qm34ari7lwnza ... \
192.168.2.100:2377
Wenn Sie Ihre Firewall- und Routing-Regeln nicht korrigieren, erhalten Sie Timeout-Fehler. Wenn Sie dem Schwarm bereits beigetreten sind, erhalten Sie eine Fehlermeldung, wenn Sie den Beitrittsbefehl wiederholen:

Error response from daemon: This node is already part of a swarm. Use "docker swarm leave" to leave this swarm and join another one.
Im Zweifelsfall können Sie den Schwarm verlassen und es erneut versuchen:

[root@localhost ~]# docker swarm leave
Node left the swarm.
docker swarm join --token
SWMTKN-1-0xvojvlza90nrbihu6gfu3qnza4 ... 192.168.2.100:2377
This node joined a swarm as a worker.
Im Worker-Knoten können Sie Docker-Informationen verwenden, um den Status zu überprüfen:

Swarm: active
NodeID: 2i27v3ce9qs2aq33nofaon20k
Is Manager: false
Node Address: 192.168.2.103
Likewise, on the manager:
Swarm: active
NodeID: cneayene32jsb0t2inwfg5t5q
Is Manager: true
ClusterID: 8degfhtsi7xxucvi6dxvlx1n4
Managers: 1
Nodes: 3
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot Interval: 10000
Heartbeat Tick: 1
Election Tick: 3
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 3 months
Node Address: 192.168.2.100
Erstellen oder skalieren Sie einen Dienst Jetzt müssen wir sehen, ob und wie Docker Container auf Knoten verteilt. Meine Tests zeigen einen recht einfachen Ausgleichsalgorithmus bei sehr geringer Belastung. Nachdem ich es ein- oder zweimal versucht hatte, wies Docker die laufenden Dienste nicht neuen Workern zu, selbst nachdem ich versucht hatte, es zu skalieren und zu aktualisieren. Ebenso wird irgendwann ein neuer Dienst auf dem Worker-Knoten erstellt. Vielleicht ist das die beste Option.


Docker 引擎的 Swarm中添加工作者节点!

Scale-Service

Docker 引擎的 Swarm中添加工作者节点!

Service ls

Docker 引擎的 Swarm中添加工作者节点!

Services ls, mehr

Docker 引擎的 Swarm中添加工作者节点!

Erstellen Sie vollständig einen neuen Dienst auf einem neuen Worker-Knoten.

Nach einer Weile kam es zu einer gewissen Umverteilung der bestehenden Dienste zwischen den beiden Containern, aber es dauerte einige Zeit. Der neue Dienst funktioniert einwandfrei. Dies ist nur eine frühe Beobachtung, daher kann ich im Moment nicht mehr sagen. Jetzt ist es an der Zeit, mit der Erkundung und Anpassung zu beginnen.


Docker 引擎的 Swarm中添加工作者节点!

Lastausgleich hat nach einer Weile funktioniert.

Zusammenfassung

Docker ist ein flinkes kleines Biest, das immer weiter wächst, komplexer, leistungsfähiger und natürlich eleganter wird. Es war nur eine Frage der Zeit, bis es von einem großen Unternehmen aufgefressen wurde. Der Schwarmmodus funktioniert gut, wenn er native Orchestrierungsfunktionen bietet, aber anstelle nur einiger weniger Container nutzt er seine Algorithmen und Skalierbarkeit voll aus.

Mein Tutorial zeigt, wie man einen Fedora-Knoten zu einem Cluster hinzufügt, der unter CentOS läuft, und wie man beide parallel arbeiten lässt. Es gibt noch einige Fragen zum Lastausgleich, aber das werde ich in einem zukünftigen Artikel untersuchen. Alles in allem hoffe ich, dass dies eine Lektion ist, die es wert ist, in Erinnerung zu bleiben. Wir haben einige der Voraussetzungen und häufigen Probleme besprochen, die bei der Einrichtung von Swarm auftreten können, wir haben eine Reihe von Containern gestartet und wir haben sogar kurz darauf eingegangen, wie man Dienste skaliert und verteilt. Denken Sie daran, dies ist erst der Anfang.

Prost.

Über den Autor:

Ich bin Igor Ljubuncic. Jetzt etwa 38, verheiratet, aber keine Kinder. Ich arbeite jetzt als Chefingenieur in einem mutigen und innovativen Cloud-Technologieunternehmen. Bis etwa Anfang 2015 arbeitete ich als Systemarchitekturingenieur bei einem der weltweit größten IT-Unternehmen und arbeitete mit einem Engineering-Computing-Team zusammen, um neue Linux-basierte Lösungen zu entwickeln, den Kernel zu optimieren und Linux-Probleme zu lösen. Davor war ich technischer Leiter in einem Team, das innovative Lösungen für Hochleistungsrechnerumgebungen entwarf. Es gibt noch andere ausgefallene Titel, darunter Systemspezialist, Systemprogrammierer und mehr. All dies waren einst meine Hobbys, aber seit 2008 ist es mein bezahlter Job. Was könnte befriedigender sein?

Von 2004 bis 2008 verdiente ich meinen Lebensunterhalt mit der Arbeit als Physiker in der medizinischen Bildgebungsbranche. Meine Arbeitsexpertise konzentriert sich auf Problemlösung und Algorithmenentwicklung. Zu diesem Zweck nutze ich Matlab ausgiebig, hauptsächlich zur Signal- und Bildverarbeitung. Darüber hinaus bin ich in mehreren wichtigen Ingenieurmethoden zertifiziert, darunter MEDIC Six Sigma Green Belt, Design of Experiments und Statistical Engineering.

Ich habe auch angefangen, Bücher zu schreiben, sowohl Fantasy- als auch technische Bücher über Linux. Miteinander verschmelzen.

Um die vollständige Liste meiner Open-Source-Projekte, Veröffentlichungen und Patente anzuzeigen, scrollen Sie unten.

Bitte warten Sie auf die vollständige Liste meiner Auszeichnungen, Nominierungen und IT-bezogenen Zertifizierungen.

Das obige ist der detaillierte Inhalt vonFügen Sie Worker-Knoten zum Swarm der Docker-Engine hinzu!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:linuxprobe.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen