So richten Sie einen Docker Swarm-Cluster auf einem CentOS 7 VPS oder einem dedizierten Server ein

Docker Swarm, im Swarm-Modus auch als Docker-Engine bezeichnet, ist ein neues Clustering- und Orchestrierungs-Tool für Docker-Container, mit dem eine Gruppe von Docker-Hosts verwaltet wird.


In diesem Artikel stellen wir Docker im Docker 1.12 vor. Es ermöglicht das Addieren und Subtrahieren von Containern im Rechenprozess. Es gibt zwei Hauptkomponenten von Docker Swarm:

Manager-Knoten: Behandelt die Verwaltung von Cluster-Aufgaben wie das Planen von Diensten, das Verwalten des Clusterstatus und das Bereitstellen von Endpunkten im Docker-Schwarmmodus.

Arbeiterknoten: Wird verwendet, um den Cluster-Container auszuführen.

In diesem Tutorial werden wir uns mit der Installation und Konfiguration des Docker Swarm-Modus unter CentOS 7 befassen. In diesem Artikel werden drei CentOS 7 zum Installieren und Starten der Docker-Engine verwendet. Von diesen fungieren zwei Server als Worker-Knoten oder Docker Engine, und der verbleibende Server ist ein Manager

Voraussetzungen

In diesem Fall benötigen wir Folgendes:

  • Ein lokaler Computer, auf dem Docker installiert ist. Der Computer kann unter Windows, Linux oder MacOS ausgeführt werden.
  • Drei Server mit vollständig installiertem CentOS 7. Ein Server ist der Manager-Knoten, während die anderen beiden Server der Worker-Knoten sind.
  • Wir verwenden die folgende IP-Adresse: 172.168.0.101 für Manager-Knoten, 172.168.0.102 für Worker-Knoten1 und 172.168.0.103 für Worker-Knoten2.

Schauen Sie sich diese Top 3 VPS-Dienste an:

A2 Hosting

Startpreis:
$ 5,00


Verlässlichkeit
9.3


Preisgestaltung
9.0


Benutzerfreundlich
9.3


Unterstützung
9.3


Eigenschaften
9.3

Bewertungen lesen

Besuchen Sie A2 Hosting

ScalaHosting

Startpreis:
$ 12.00


Verlässlichkeit
9.4


Preisgestaltung
9.5


Benutzerfreundlich
9.5


Unterstützung
9.5


Eigenschaften
9.4

Bewertungen lesen

Besuchen Sie ScalaHosting

Hostinger

Startpreis:
$ 3,95


Verlässlichkeit
9.3


Preisgestaltung
9.3


Benutzerfreundlich
9.4


Unterstützung
9.4


Eigenschaften
9.2

Bewertungen lesen

Besuchen Sie Hostinger

Melden Sie sich bei https://ecs.console.aliyun.com/?spm=a3c0i.o25424en.a3.13.388d499ep38szx an und wählen Sie CentOS 7. Wenn Sie angemeldet sind, führen Sie den folgenden Befehl aus, um sicherzustellen, dass das System mit dem aktualisiert wird Neueste verfügbare Pakete:

yum update -y

Loslegen

Stellen Sie vor Beginn des Vorgangs sicher, dass Sie die Datei / etc / hosts auf jedem Knoten konfigurieren, damit die Kommunikation unter Verwendung von Hostnamen einfacher wird.

Verwenden Sie den folgenden Befehl, um die Hostdatei zu aktualisieren:

172.168.0.101dkmanager.example.com dkmanager

172.168.0.102 workernode1.example.com workernode1

172.168.0.103 workernode2.example.com workernode2

Speichern Sie die Datei, wenn Sie fertig sind.

Konfigurieren Sie nun den Hostnamen jedes Knotens abhängig von der Hosts-Datei.

Führen Sie den folgenden Befehl für jeden Knoten aus.

Manager-Knoten:

hostnamectl set-hostname managernode

Arbeiterknoten1:

hostnamectl set-hostname workernode1

Arbeiterknoten2:

hostnamectl set-hostname workernode2

Schritt 1: Installieren der Docker Engine

Installieren Sie nun die Docker-Version auf jedem Knoten. Legen Sie das Docker-Repository-System fest und führen Sie den folgenden Befehl für alle Hostnamen aus.

Machen Sie dasselbe für die beiden Worker-Knotenserver.

Schritt 2: Konfigurieren der Firewall auf jedem Knoten

Der nächste Schritt besteht darin, die Ports in der Firewall zu öffnen, um sicherzustellen, dass der Schwarmcluster ordnungsgemäß funktioniert.

Fahren Sie fort und führen Sie den folgenden Befehl auf allen Knoten aus:

Starten Sie den Docker-Dienst neu:

Öffnen Sie die Firewall-Ports unten auf jedem Worker-Knoten und starten Sie den Docker-Dienst neu:

Schritt 3: Starten Sie den Schwarm oder Cluster

Initialisierte den Schwarm auf Ihrem Manager-Knoten. Führen Sie dazu den folgenden Befehl aus.

Docker-Schwarm init –advertise-addr 192.168.0.101

Stellen Sie sicher, dass Sie die folgende Ausgabe sehen:

Das von der obigen Ausgabe generierte Token hilft beim Verbinden von Manager- und Worker-Knoten

Überprüfen Sie den Manager-Status mit dem folgenden Befehl:

Docker-Info

Die Ausgabe sollte folgendermaßen aussehen:

Behälter: 0
Laufen: 0
Angehalten: 0
Gestoppt: 0
Bilder: 0
Serverversion: 17.12.0-ce
Speichertreiber: Devicemapper
Poolname: Docker-253: 0-618740-Pool
Poolblockgröße: 65,54 kB
Größe des Basisgeräts: 10,74 GB
Sichern des Dateisystems: xfs
Udev-Synchronisierung unterstützt: true
Datendatei: / dev / loop0
Metadatendatei: / dev / loop1
Datenschleifendatei: / var / lib / docker / devicemapper / devicemapper / data
Metadaten-Schleifendatei: / var / lib / docker / devicemapper / devicemapper / metadata
Verwendeter Datenraum: 11,8 MB
Datenraum insgesamt: 107,4 GB
Verfügbarer Datenraum: 3.817 GB
Verwendeter Metadatenraum: 581,6 kB
Metadaten-Speicherplatz Gesamt: 2.147 GB
Verfügbarer Metadatenplatz: 2.147 GB
Thin Pool Mindestfreiraum: 10,74 GB
Aufgeschobene Entfernung aktiviert: true
Zurückgestelltes Löschen aktiviert: true
Anzahl der zurückgestellten gelöschten Geräte: 0
Bibliotheksversion: 1.02.140-RHEL7 (2017-05-03)
Protokollierungstreiber: JSON-Datei
Cgroup-Treiber: cgroupfs
Plugins:
Lautstärke: lokal
Netzwerk: Bridge-Host-Macvlan-Null-Overlay
Protokoll: awslogs fließend gcplogs gelf journald json-file logentries splunk syslog
Schwarm: aktiv
Knoten-ID: viwovkb0bk0kxlk98r78apopo
Ist Manager: wahr
ClusterID: ttauawqrc8mmd0feluhcr1b0d
Manager: 1
Knoten: 1
Orchestrierung:
Aufbewahrungslimit für den Aufgabenverlauf: 5
Floß:
Schnappschussintervall: 10000
Anzahl der zu speichernden alten Schnappschüsse: 0
Herzschlag-Zecke: 1
Wahlkreuz: 3
Dispatcher:
Herzschlagzeitraum: 5 Sekunden
CA-Konfiguration:
Ablaufdauer: 3 Monate
Drehung erzwingen: 0
Autolock-Manager: falsch
Root Rotation In Progress: false
Knotenadresse: 192.168.0.102
Manageradressen:
192.168.0.102:2377
Laufzeit: runc
Standardlaufzeit: runc
Init Binary: Docker-Init
Containerd-Version: 89623f28b87a6004d4b785663257362d1658a729
runc version: b2567b37d7b75eb4cf325b77297b140ea686ce8f
Init-Version: 949e6fa
Sicherheitsoptionen:
seccomp
Profil: Standard
Kernel-Version: 3.10.0-693.11.1.el7.x86_64
Betriebssystem: CentOS Linux 7 (Core)
OSType: Linux
Architektur: x86_64
CPUs: 1
Gesamtspeicher: 1,102 GB
Name: centOS-7
ID: DN4N: BHHJ: 6DJ7: SZPG: FJJC: XP6T: 23R4: CESK: E5PO: SJ6B: BOST: HZQ5
Docker-Stammverzeichnis: / var / lib / docker
Debug-Modus (Client): false
Debug-Modus (Server): false
Registrierung: https://index.docker.io/v1/
Etiketten:
Experimentell: falsch
Unsichere Register:
127.0.0.0/8
Live-Wiederherstellung aktiviert: false

Sie sollten die gesamte Liste der in Ihrem Cluster vorhandenen Knoten mit dem folgenden Befehl anzeigen:

Docker-Knoten ls

Die Ausgabe sollte folgendermaßen aussehen:

Schritt 4: Fügen Sie dem Manager-Knoten Worker-Knoten hinzu

Fügen Sie die Worker-Knoten mit dem folgenden Befehl zum Docker-Schwarmdienst hinzu:

Docker-Schwarm-Join –Token SWMTKN-1
3793hvb71g0a6ubkgq8zgk9w99hlusajtmj5aqr3n2wrhzzf8z-1s38lymnir13hhso1qxt5pqru 192.168.0.101:2377

Die Ausgabe sollte sein:

Führen Sie den folgenden Befehl aus, um den Status der Knoten zu überprüfen:

Docker-Knoten ls

Wenn der Prozess erfolgreich ist, sollten Sie die folgende Ausgabe erhalten:

Wenn Sie ein verlorenes Join-Token abrufen möchten, führen Sie den folgenden Befehl aus:

Docker-Schwarm Join-Token-Manager -q

Inzwischen sollte der Docker-Schwarmmodus mit zwei Worker-Knoten erfolgreich ausgeführt werden.

Schritt 5: Richten Sie den Dienst im Schwarmmodus ein

Starten Sie nun den Dienst im Schwarmmodus. In diesem Fall starten wir einen Webdienst im Docker-Schwarmmodus mit den drei Containern.

Führen Sie den folgenden Befehl nur im Docker Manager aus:

Docker-Dienst erstellen -p 80:80 –name Webservice –replicas 3 httpd

Die Ausgabe sollte folgendermaßen aussehen:

Führen Sie den folgenden Befehl aus, um den Status Ihres Dienstes zu überprüfen:

Docker-Service ls

Ausgabe wird sein:

Mit der obigen Ausgabe werden die Container erfolgreich auf den Clusterknoten bereitgestellt. Mit den folgenden Webbrowser-Adressen ist es jetzt einfacher, sich von jedem Knoten aus bei der Webseite anzumelden.

http: // 172.168. 0,101
http: //172.168. 0,102
http: //172.168. 0,103

Schritt 6: Testen der Selbstheilung des Behälters

Der Docker-Schwarmmodus enthält einzigartige Funktionen wie die Selbstheilung von Containern. Falls ein Container nicht funktioniert, stellt der Manager sicher, dass die Container auf diesem bestimmten Knoten automatisch neu gestartet werden.

Um zu testen, ob der Prozess funktioniert, entfernen wir einen Container aus workernode2 und finden heraus, ob ein neuer Container gestartet wird oder nicht.

Führen Sie den folgenden Befehl aus, um die Container-ID auf Workernode2 aufzulisten:

Docker ps

Die Ausgabe sollte folgendermaßen aussehen:

Führen Sie nun den folgenden Befehl aus, um den Container 9b01b0a55cb7 zu entfernen:

Docker rm 9b01b0a55cb7 -f

Überprüfen Sie nun, ob ein neuer Container vom Manager-Knoten bereitgestellt wird:

Docker-Service ps Webservice

Inzwischen stellen Sie möglicherweise fest, dass ein Container ausgefallen ist und sofort ein anderer Container auf workernode2 gestartet wurde:

Schritt 7: Skalieren von Containern für den Service

Im Docker-Cluster können Container vergrößert und verkleinert werden. In diesem Fall versuchen wir, die Container für den Service auf 5 zu skalieren.

[root @ dkmanager ~] # Docker Service Scale Webserver = 5
Webserver auf 5 skaliert
[root @ dkmanager ~] #

Überprüfen Sie den Status des Dienstes erneut mit dem folgenden Befehl:

Versuchen wir nun, den Container für den Service auf 2 zu verkleinern:

[root @ dkmanager ~] # Docker Service Scale Webserver = 2
Webserver auf 2 skaliert
[root @ dkmanager ~] #

Überprüfen Sie, ob der Vorgang mit dem folgenden Befehl abgeschlossen ist:

Jetzt sollten Sie einen vollständig konfigurierten Docker Swarm-Cluster unter CentOS7 haben.

Fazit

Hier hast du es. So einfach ist es, Docker Swarm mithilfe des neuen Swarm-Modus und der Docker-Engine einzurichten. Es ist wichtig zu beachten, dass Sie nach Abschluss der Einrichtung sicherstellen, dass Sie die Server schützen, indem Sie eine zusätzliche Sicherheitsebene bereitstellen. Eine Sicherheitsfunktion mit Firewall- und Überwachungsfunktionen ist ein guter Anfang.

Schauen Sie sich die Top 3 der dedizierten Server-Hosting-Services an:

A2 Hosting

Startpreis:
99,59 $


Verlässlichkeit
9.3


Preisgestaltung
9.0


Benutzerfreundlich
9.3


Unterstützung
9.3


Eigenschaften
9.3

Bewertungen lesen

Besuchen Sie A2 Hosting

FastComet

Startpreis:
139,00 $


Verlässlichkeit
9.7


Preisgestaltung
9.5


Benutzerfreundlich
9.7


Unterstützung
9.7


Eigenschaften
9.6

Bewertungen lesen

Besuchen Sie FastComet

Hostwinds

Startpreis:
99,00 $


Verlässlichkeit
9.3


Preisgestaltung
9.2


Benutzerfreundlich
9.2


Unterstützung
9.3


Eigenschaften
9.2

Bewertungen lesen

Besuchen Sie Hostwinds

Verwandte Anleitungen

  • Bereitstellen von Docker-Containern mit OpenStack Heat
    Experte
  • So installieren Sie Django auf einem CentOS 7 VPS oder einem dedizierten Server
    mittlere
  • So richten Sie einen Docker Swarm-Cluster unter Ubuntu 16.04 VPS oder einem dedizierten Server ein
    Experte
  • Installieren & Konfigurieren Sie den Caddy-Webserver auf einem CentOS 7 VPS
    mittlere
  • So richten Sie SSH auf einem Ubuntu 16.04 VPS oder einem dedizierten Server ein
    mittlere
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me