So konfigurieren Sie Docker Swarm mit mehreren Docker -Knoten auf Ubuntu 18.04

So konfigurieren Sie Docker Swarm mit mehreren Docker -Knoten auf Ubuntu 18.04

Docker Swarm ist ein Container -Orchestrierungs- und Clustering -Tool zum Verwalten von Docker -Hosts und Teil von Docker Engine. Es handelt sich um ein von Docker bereitgestellter national.

Das Hauptziel von Docker Swarm ist es, mehrere Docker-Hosts in einen einzelnen logischen virtuellen Server zu gruppieren. Dadurch wird die Verfügbarkeit und hohe Leistung für Ihre Anwendung gewährleistet, indem sie es über eine Reihe von Docker-Hosts anstelle von nur einem verteilen.

In diesem Tutorial lernen Sie:

  • Was ist Docker Schwarm
  • So konfigurieren Sie Hosts
  • So installieren und führen Sie den Docker -Service aus und führen Sie aus
  • So konfigurieren Sie den Manager -Knoten für die Initialisierung von Schwarmcluster
  • So konfigurieren Sie Arbeiterknoten, um sich dem Schwarm -Cluster anzuschließen
  • So überprüfen Sie den Schwarm -Cluster
  • So bereitstellen Sie einen neuen Service auf Swarm Cluster
Docker Swarm Services.

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Ubuntu 18.04
Software Docker-CE 18.09
Andere Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Schwarmkonzept im Detail

Die in der Docker -Engine eingebetteten Cluster -Management- und Orchestrierungsfunktionen werden mit Swarmkit gebaut.

Ein Schwarm besteht aus mehreren Docker -Hosts, die im Schwarmmodus laufen und als Manager (die Mitgliedschaft und Delegation verwalten) und Arbeitnehmer (die Swarm -Dienste ausführen) fungieren). Ein bestimmter Docker -Host kann ein Manager, ein Arbeiter sein oder beide Rollen ausführen. Wenn Sie einen Dienst erstellen, definieren Sie den optimalen Zustand wie die Anzahl der Informationen, Netzwerk- und Speicherressourcen, die dem Dienst der Außenwelt usw. ausgesetzt sind usw. Wenn ein Arbeiterknoten nicht verfügbar ist, planen Docker die Aufgaben des Knotens auf anderen Knoten. Eine Aufgabe ist ein laufender Container, der Teil eines Schwarmdienstes ist und von einem Schwarmmanager verwaltet wird.



Einer der wichtigsten Vorteile von Schwarmdiensten gegenüber Standalone -Containern besteht darin, dass Sie die Konfiguration eines Dienstes, einschließlich der Netzwerke und Volumina, an die er angeschlossen ist, ohne dass der Service manuell neu gestartet werden muss, um manuell neu zu starten. Docker aktualisiert die Konfiguration, stoppt die Serviceaufgaben mit der veralteten Konfiguration und erstellt neue, die der gewünschten Konfiguration entsprechen.

Wenn Docker im Swarm -Modus läuft, können Sie immer noch eigenständige Container auf jedem der Docker -Hosts ausführen. Ein wesentlicher Unterschied zwischen eigenständigen Containern und Schwarmdiensten besteht darin, dass nur Schwarmmanager einen Schwarm verwalten können, während eigenständige Container mit jedem Daemon gestartet werden können. Docker -Daemons können an einem Schwarm als Manager, Arbeiter oder beides teilnehmen.

Konfigurieren Sie die Docker -Hosts

Vor der Installation der erforderlichen Docker -Pakete für den Swarm -Cluster konfigurieren wir die Hosts -Datei auf allen Ubuntu -Knoten.

Manager Node - 192.168.1.103 (Hostname - DockerManager) Worker Node1 - 192.168.1.107 (Hostname - Dockerworker1) Worker Node2 - 192.168.1.108 (Hostname - Dockerworker2) 

Bearbeiten die /etc/hosts Datei über alle drei Knoten über GEDIT oder Vim und machen Sie folgende Änderungen:

192.168.1.103 Dockermanager 192.168.1.107 Dockerworker1 192.168.1.108 Dockerworker2 
Kopieren

Überprüfen Sie nach dem Ändern der oben genannten Details in der Hosts -Datei die Konnektivität mit Klingeln zwischen allen Knoten.

Vom Host von Docker Manager

# Ping Dockerworker1 # Ping 192.168.1.107 
# Ping Dockerworker2 # Ping 192.168.1.108 

Vom Docker -Arbeiterknoten 1

# Ping Dockermanager # Ping 192.168.1.103 

Vom Docker -Arbeiterknoten 2

# Ping Dockermanager # Ping 192.168.1.103 

Installieren und Ausführen von Docker -Service

Um den Swarm -Cluster zu erstellen, müssen wir Docker auf allen Serverknoten installieren. Wir werden Docker-ce i installieren.e. Docker Community Edition auf allen drei Ubuntu -Maschinen.

Bevor Sie Docker CE zum ersten Mal auf einem neuen Host -Computer installieren, müssen Sie das Docker -Repository einrichten. Anschließend können Sie Docker aus dem Repository installieren und aktualisieren. Führen Sie alle folgenden Schritte über alle drei Ubuntu -Knoten aus.

Aktualisieren Sie den APT -Paketindex:

# APT-Get-Update 

Installieren Sie Pakete, damit die Neigungsform ein Repository über HTTPS verwenden kann:

# APT-Get Installation APT-transport-http 


Fügen Sie den offiziellen GPG -Schlüssel von Docker hinzu:

curl -fssl https: // herunterladen.Docker.com/linux/ubuntu/gpg | sudo apt-key add - 

Verwenden Sie den folgenden Befehl, um das stabile Repository einzurichten:

# add-apt-Repository "Deb [arch = amd64] https: // download.Docker.com/linux/ubuntu $ (lsb_release -cs) stabil " 

Aktualisieren Sie das APT -Paket erneut:

# APT-Get-Update 

Installieren Sie die neueste Version von Docker CE:

APT-GET-Installieren Sie Docker-CE

Starten Sie nach Abschluss der Installation den Docker -Dienst und ermöglichen Sie ihn, jedes Mal am System Boot zu starten.

# Systemctl Start Docker # systemctl aktivieren Docker 

So führen Sie den folgenden Befehl aus:

# Usermod -ag -Docker  
# Usermod -Ag Docker Manager # Usermod -ag Docker Worker1 # Usermod -ag Docker Worker2 

Melden Sie sich nun als benannter Benutzer an und führen Sie den Docker aus Hallo Welt verifizieren.

# Su - Manager $ Docker run hello world 

Nach erfolgreichem Lauf wird es die folgende Ausgabe geben

Docker -Installationsprüfung Hello_world.

Konfigurieren Sie den Manager -Knoten für die Initialisierung von Schwarmcluster

In diesem Schritt werden wir den Schwarm Cluster unserer Knoten erstellen. Um den Swarm -Cluster zu erstellen, müssen wir den Swarm -Modus auf dem Knoten "Dockermanager" initialisieren und dann dem Knoten "Dockerworker1" und "Dockerworker2" an den Cluster beitreten.

Initialisieren Sie den Docker -Swarm -Modus, indem Sie den folgenden Docker -Befehl auf dem Knoten "Dockermanager" ausführen.




Docker Swarm Init-Advertise-Addr

$ docker swarm init-Advertise-addr 192.168.1.103 
Schwarm -Cluster -Initialisierung.

"Join Token" wurde vom "DockerManager" generiert, der den Arbeiterknoten mit dem Cluster -Manager anschließen muss.

Konfigurieren Sie Arbeiterknoten, um sich dem Schwarm -Cluster anzuschließen

Um den Arbeiterknoten zum Schwarm zu verbinden, werden wir den Befehl Docker Swarm Join auf allen Arbeiterknoten ausführen, die wir im Swarm -Initialisierungsschritt erhalten haben:

$ Docker Swarm Join--gesewöhnte SWMTKN-1-4HTF3VNZMBHC88VXJYGUIPO91IHMUTRXI2P1SI2DE4WHAQYLR6-3OED1HNTTWKALUR1EY7ZKDP9L 192.168.1.103: 2377 
Arbeiterknoten 1, der sich dem Schwarm Cluster anschließt. Arbeiterknoten 2, der sich dem Schwarm Cluster verbindet.

Überprüfen Sie den Schwarmcluster

Um den Knotenstatus zu sehen, damit wir feststellen können, ob die Knoten aktiv/verfügbar sind usw., über den Manager -Knoten, listen Sie alle Knoten im Schwarm auf:

$ docker node ls 
Docker Swarm Cluster -Überprüfung.

Wenn Sie zu irgendeinem Zeitpunkt Ihr Join -Token verloren haben, kann er abgerufen werden, indem der folgende Befehl im Manager -Knoten für das Manager -Token ausgeführt wird:

$ Docker Swarm Join -Token Manager -q 

So abrufen, um den Worker -Token abzurufen, führen Sie den folgenden Befehl im Manager -Knoten aus:

$ Docker Swarm Join -Token Worker -q 

Bereitstellen Sie einen neuen Service auf Swarm Cluster ein

In diesem Schritt werden wir unseren ersten Dienst im Schwarm -Cluster erstellen und bereitstellen. Der neue Service NGINX -Webserver wird auf dem Standard -HTTP -Port 80 ausgeführt und dann dem Port 8081 auf dem Host -Computer ausgesetzt. Wir werden diesen Nginx -Dienst mit 2 Replikaten erstellen, was bedeutet, dass 2 Container von Nginx in unserem Schwarm ausgeführt werden. Wenn einer dieser Container ausfällt, werden sie erneut hervorgebracht, um die gewünschte Nummer zu haben, die wir auf der Replik -Option festgelegt haben.

$ docker Service create-name my-Web1-Publish 8081: 80-Replicas 2 Nginx 

Nach erfolgreicher Bereitstellung des Dienstes sehen Sie die folgende Ausgabe:

Bereitstellen Sie den NGINX -Dienst auf Swarm Cluster bereit.

So überprüfen Sie den neu erstellten NGINX -Dienst mit den folgenden Docker -Service -Befehlen.

$ Docker Service LS 
Listen Sie den neu bereitgestellten Dienst auf Swarm Cluster auf.


Docker Service PS

$ docker service ps my-Web1 
Listet die Aufgaben auf, die als Teil der angegebenen Dienste auf Swarm Cluster ausgeführt werden.

Wenn wir überprüfen müssen, ob der Nginx -Service einwandfrei funktioniert, können wir entweder den Befehl curl verwenden oder im Browser auf dem Host -Computer für die Begrüßung von Nginx Web Server überprüfen.

$ curl http: // dockermanager: 8081 

Nginx Web Service Check über Curl.

Im Browser auf dem Host -Computer können wir auf die Begrüßungsseite von Nginx zugreifen

Nginx -Serviceprüfung über Browser.

Wenn wir nun den Nginx -Dienst skalieren müssen, werden wir 3 Replikate durchführen und dies den folgenden Befehl auf dem Manager -Knoten ausführen:

$ Docker Service Scale my-Web1 = 3 

Serviceskalierung für die gewünschte Anzahl von Repliken.

Um die Ausgabe nach der Skalierung zu überprüfen, können wir verwenden Docker Service LS oder Docker Service PS Befehl.

Wir können benutzen Docker Service Inspect Befehl zum Überprüfen der erweiterten Details eines bereitgestellten Dienstes auf Schwarm. Standardmäßig macht dies alle Ergebnisse zu einem JSON -Array.

Abschluss

Docker ist zu einer äußerst beliebten Möglichkeit geworden, Serverumgebungen mit Containern zu konfigurieren, zu speichern und zu teilen. Aus diesem Grund kann die Installation einer Anwendung oder sogar eines großen Stapels oft so einfach sein wie das Ausführen von Docker Pull oder Docker -Lauf. Die Tennung von Anwendungsfunktionen in verschiedene Container bietet auch Vorteile im Sicherheits- und Abhängigkeitsmanagement.

Verwandte Linux -Tutorials:

  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu installieren auf Ubuntu 20.04
  • Einführung in MySQL -Speichermotoren
  • Mastering -Bash -Skriptschleifen beherrschen
  • So installieren Sie Kubernetes auf Ubuntu 20.04 fokale Fossa Linux
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Wie oft müssen Sie Ihren Linux -Server neu starten??
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • So installieren Sie Kubernetes auf Ubuntu 22.04 Jammy Quallen…
  • Verschachtelte Schleifen in Bash -Skripten