Docker Swarm ist ein von Docker entwickelter Container-Cluster-Verwaltungsdienst. Ab Version 1.12.0 wird es nach der Installation ein Teil von Docker (gebündelte Software), auch als Swarm-Modus bezeichnet, und es ist keine zusätzliche Installation erforderlich. Im Vergleich zu Kubernetes ist Docker Swarm eine einfache Software, die nicht gerade überzeugend erscheint. Aber die Kompatibilität mit Docker-Compose macht alles wett. Für Anfänger, die keine Erfahrung mit der Verwendung von Clustern haben, ist der Einstieg mit Docker Swarm eine gute Wahl. Konzept Docker Swarm umfasst hauptsächlich die folgenden Konzepte:
Schwarm selbst bedeutet „Gruppe“, eine Menge oder ein Schwarm. Damit ist der Zustand des Computerclusters nach der Anbindung mittels Docker gemeint. Mit dem Befehl „Docker Swarm“ können Sie einen Cluster erstellen, ihm beitreten und ihn verlassen. Ein Node ist ein Computerknoten, der auch als Docker-Knoten betrachtet werden kann. Knoten sind in zwei Kategorien unterteilt: Manager und Worker. Ein Schwarm muss mindestens einen Manager haben und einige Verwaltungsbefehle können nur für den Manager verwendet werden. Beide Knotentypen können Dienste ausführen, aber nur der Manager kann Ausführungsbefehle ausführen. Beispielsweise können Sie den Befehl „Docker Node“ verwenden, um Knoten nur im Manager anzuzeigen, zu konfigurieren und zu löschen. Ein Stack ist eine Gruppe von Diensten, ähnlich wie Docker-Compose. Standardmäßig teilt sich ein Stack ein Netzwerk und ist gegenseitig zugänglich, aber von anderen Stack-Netzwerken isoliert. Dieses Konzept dient lediglich der Vereinfachung der Anordnung. Mit dem Docker-Stack-Befehl können Sie problemlos einen Stack betreiben, anstatt die Dienste einzeln auszuführen. Service ist eine Art Container. Für Benutzer ist der Service der Kerninhalt der Interaktion mit Swarm. Der Dienst verfügt über zwei Ausführungsmodi: Einer ist repliziert und gibt die Anzahl der Container an, die ein Dienst ausführt. Der andere ist global und führt einen Container dieses Typs auf allen Knoten aus, die die Ausführungsbedingungen erfüllen. Der Docker-Service-Befehl kann den Dienst in Swarm betreiben. Mit Task wird die Aufgabe des Ausführens eines Containers bezeichnet, der die kleinste Einheit eines Swarm-Ausführungsbefehls darstellt. Um einen Dienst erfolgreich auszuführen, müssen Sie eine oder mehrere Aufgaben ausführen (abhängig von der Anzahl der Container eines Dienstes), um sicherzustellen, dass jeder Container erfolgreich gestartet wird. Normalerweise führen Benutzer eher Dienste als Aufgaben aus. Zum Lastenausgleich gehört auch der Reverse-Proxy. Swarm verwendet Ingress-Lastausgleich, was bedeutet, dass jeder Zugriff auf einen veröffentlichten Port auf jedem Knoten automatisch an den realen Dienst weitergeleitet werden kann. Das allgemeine Prinzip ist in der folgenden Abbildung dargestellt. Replikationsmodus Leistungen: einige-Dienste: ... einsetzen: Modus: repliziert Replikate: 3 Standardmäßig wird der Modus repliziert, daher kann diese Zeile weggelassen werden. Die Standardanzahl der Replikate beträgt 1, was bedeutet, dass dieser Dienst nur einen Container startet. In diesem Modus können Sie bei Bedarf mehrere Dienste starten, und Swarm passt sich automatisch an. Manchmal startet ein Knoten mehrere Container. Globaler Modus Leistungen: einige-Dienste: ... einsetzen: Modus: global Platzierung: ... Stellen Sie einen für alle bereitstellbaren Knoten bereit. Durch die Platzierung können Sie die Knoten begrenzen, die die Bedingungen erfüllen, und die Bereitstellung auf ungeeigneten Knoten vermeiden. arbeiten Hier sind einige häufig verwendete spezifische Operationen aufgeführt. Erstellen des ersten Knotens Docker Swarm init --advertise-addr $IP $IP ist die extern zugängliche IP-Adresse des aktuellen Knotens, die für andere Knoten bequem zu adressieren ist. Auf diese Weise wird ein Swarm initialisiert, der nur über einen Manager-Knoten verfügt. Hinzufügen eines neuen Knotens zum Schwarm Führen Sie auf dem Manager-Knoten den folgenden Befehl aus, um zu sehen, wie Sie einem Knoten beitreten: $ Docker Swarm Join-Token-Manager Um diesem Swarm einen Manager hinzuzufügen, führen Sie den folgenden Befehl aus: Docker-Schwarm beitreten --Token SWMTKN-1-2zspelk468gb6wgw5adea4wlbw4kfy3q1uhr86zpafl9m5a3ho-ezs4fylj526e801b3cl0pojr5 10.174.28.52:2377 $ Docker Swarm Join-Token-Arbeiter Um diesem Schwarm einen Arbeiter hinzuzufügen, führen Sie den folgenden Befehl aus: Docker-Schwarm beitreten --Token SWMTKN-1-2zspelk468gb6wgw5adea4wlbw4kfy3q1uhr86zpafl9m5a3ho-164iqklrfv8o3t55g088hylyk 10.174.28.52:2377 Führen Sie auf einer Maschine, die keinem Swarm beigetreten ist, den oben gezeigten Befehl docker swarm join --token ... aus, um ein Manager- oder Worker-Knoten dieses Swarms zu werden. Festlegen der Knotenbezeichnung Auf dem Manager-Knoten können Sie Beschriftungen für jeden Knoten festlegen: Docker-Knoten-Update $node_name --label-add main=true $node_name dient zum Festlegen der Knoten-ID oder des HOSTNAMEN. Die Bezeichnung hat die Form eines Schlüssel-Wert-Paares. Bei main=true ist main der Schlüssel und true der Wert. Nachdem Sie das Label festgelegt haben, können Sie die Einschränkungen bei der Platzierung in der Compose-Datei verwenden, um die verfügbaren Knoten einzuschränken. Leistungen: einige-Dienste: ... einsetzen: Platzierung: Einschränkungen: - node.labels.main == true ... Die obige Konfiguration ermöglicht die Verwendung von some-service nur auf Knoten, bei denen Label auf main=true gesetzt ist. Starten und Beenden von Diensten Docker-Stack-Bereitstellung $stack_name -c docker-compose.yaml -c other.yaml … $stack_name ist der Stapelname. Sie können -c verwenden, um mehrere Docker-Compose-Dateien anzugeben, oder Sie können mehrere Dateien stapelweise unter demselben Stapel bereitstellen. Das Schreiben dieser YAML-Dateien ist im Wesentlichen dasselbe wie das des ursprünglichen Docker-Compose-Befehls, mit der Ausnahme, dass die folgenden eindeutigen Konfigurationen hinzugefügt werden und einige Konfigurationen, die im Swarm-Szenario nicht unterstützt werden, ignoriert werden. Es wird empfohlen, zum Orchestrieren des Stacks die Docker-Compose-Datei zu verwenden, anstatt ihn manuell mit „Docker Service Create“ zu erstellen. Detaillierte Informationen zu Konfigurationselementen finden Sie in der Referenz zur Compose-Dateiversion 3 | Docker-Dokumentation. Um alle Dienste in einem Stapel zu stoppen, führen Sie den folgenden Befehl aus. Docker-Stapel rm $Stack_Name Aktualisieren des Images eines laufenden Dienstes Docker-Dienstaktualisierung --image $image:$tag $service_name Oben finden Sie eine ausführliche Erläuterung des Konzepts und der Verwendung von Docker Swarm. Weitere Informationen zu Docker Swarm finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Lösung für das Problem des verstümmelten Codes in MySQL 5.x
>>: Eine kurze Einführung in die Abfrageeffizienz von MySQL-Speicherfeldtypen
Erstellen Sie eine ansprechende Anmelde- und Regi...
Inhalt 1. Geben Sie den Lesern einen Grund zu blei...
In diesem Artikel wird der Vorgang zum Herunterfa...
Systemhilfe anzeigen help contents mysql> Hilf...
Schauen Sie sich den Code an: Code kopieren Der Co...
Inhaltsverzeichnis Definition Grammatik Beispiele...
Inhaltsverzeichnis 1. Einleitung: 2. Die erste Id...
Überblick Ein Index ist eine vom DBMS basierend a...
Ich habe zuvor zum Einstieg in UDP ein einfaches ...
Vor kurzem traten bei der Installation von Apache...
Inhaltsverzeichnis Was ist ReactHook? React biete...
Zustandshaken Beispiele: importiere { useState } ...
In diesem Artikel wird der spezifische Code des d...
Tar-Backup-System sudo tar cvpzf backup.tgz --exc...
Dieser Artikel stellt die Entwicklungsumgebung vo...