GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren und konfigurieren Sie den Docker Swarm-Modus unter CentOS 7 / RHEL 7

Der Docker Swarm-Modus ist das Orchestrierungs- und Clustering-Tool eines Containers zur Verwaltung des Docker-Hosts. Der Docker Swarm-Modus ist der native Teil der Docker-Engine. Das bedeutet, dass Sie außer der Docker-Engine nichts installieren müssen, da der Docker-Schwarmmodus Teil der Docker-Engine ist.

Der Docker-Schwarmmodus wird mit Docker 1.12 eingeführt. Einige der Hauptvorteile des Docker-Schwarmmodus sind die Container-Selbstheilung , Load-Balancing , Container-Skalierung undskalieren , Diensterkennung und laufende Updates . In den letzten paar Artikeln haben wir die folgenden Themen diskutiert

  • So installieren Sie Docker unter CentOS 7
  • So erstellen Sie Docker-Container-Images mit Dockerfile

In diesem Artikel erklären wir Ihnen, wie Sie den Docker Swarm-Modus unter CentOS 7.x / RHEL 7.x installieren und konfigurieren. Für die Demonstration werde ich 3 CentOS 7.x verwenden oder RHEL 7.x Server, auf denen ich die Docker-Engine installieren werde. Davon fungieren zwei Server als Docker Engine oder Worker-Knoten und einer wird als Manager fungieren . In meinem Fall verwende ich Folgendes:

  • dkmanager.example.com (172.168.10.70 ) – Es fungiert als Manager, der die Docker-Engine oder Hosts oder Worker-Knoten verwaltet, und es fungiert auch als Docker-Engine.
  •  workernode1.example.com ( 172.168.10.80 ) – fungiert als Docker-Engine oder Worker-Knoten
  • workernode2.example.com ( 172.168.10.90 ) – fungiert als Docker-Engine oder Worker-Knoten

Aktualisieren Sie die folgenden Zeilen in der Datei /etc/hosts auf allen Servern

172.168.10.70    dkmanager.example.com   dkmanager172.168.10.80    workernode1.example.com         workernode1172.168.10.90    workernode2.example.com         workernode2

Schritt:1 Docker Engine auf allen Hosts installieren

Legen Sie zuerst das Docker-Repository fest und führen Sie dann den Befehl below auf allen Hosts aus.

[[email protected] ~]# yum install yum-utils –y[[email protected] ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/ docker-ce.repo[[email protected] ~]# yum install docker-ce docker-ce-cli containerd.io –y[[email protected] ~]# systemctl docker starten[[email protected] ~]# systemctl docker aktivieren 

Wiederholen Sie die obigen Schritte für workernode1 und workernode2

Hinweis:Zum Zeitpunkt der Erstellung dieses Artikels war die Docker-Version 1.13 verfügbar.

Schritt:2 Firewall-Ports auf Manager- und Worker-Knoten öffnen

Öffnen Sie die folgenden Ports in der Betriebssystem-Firewall im Docker Manager mit den folgenden Befehlen

[[email protected] ~]# firewall-cmd --permanent --add-port=2376/tcpsuccess[[email protected] ~]# firewall-cmd --permanent --add-port=2377/tcpsuccess[ [email protected] ~]# firewall-cmd --permanent --add-port=7946/tcpsuccess[[email protected]ager ~]# firewall-cmd --permanent --add-port=7946/udpsuccess[[email protected ] ~]# firewall-cmd --permanent --add-port=4789/udpsuccess[[email protected] ~]# firewall-cmd --permanent --add-port=80/tcpsuccess[[email protected] ~]# firewall-cmd --reloadsuccess[[email protected] ~]#

Starten Sie den Docker-Dienst im Docker-Manager neu

[[email protected] ~]# systemctl docker neu starten

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

~]# firewall-cmd --permanent --add-port=2376/tcp~]# firewall-cmd --permanent  --add-port=7946/tcp~]# firewall-cmd --permanent -- add-port=7946/udp~]#  firewall-cmd --permanent --add-port=4789/udp~]# firewall-cmd --permanent --add-port=80/tcp~]#  firewall-cmd - -reload~]#  systemctl Docker neu starten

Schritt:3 Initialisieren Sie den Schwarm oder Cluster mit dem Befehl „docker swarm init“

Führen Sie den folgenden Befehl vom Manager-Knoten (dkmanager) aus, um den Cluster zu initialisieren.

[[email protected] ~]# docker swarm init --advertise-addr 172.168.10.70

Dieser Befehl macht unseren Knoten zu einem Manager-Knoten und wir geben auch die IP-Adresse des Managers im obigen Befehl bekannt, damit der Slave- oder Worker-Knoten dem Cluster beitreten kann.

Führen Sie den folgenden Befehl aus, um den Managerstatus zu überprüfen und eine Liste der Knoten in Ihrem Cluster anzuzeigen

[[email protected] ~]# docker node lsID                          HOSTNAME               STATUS  VERFÜGBARKEIT  MANAGER STATUSn64oy2sml1w188ps109mai67b *  dkmanager.example# .com  Ready   Active       protected>[email] 

Wir können auch die „Docker-Info verwenden ” Befehl, um den Status des Schwarms zu überprüfen

Schritt:3 Worker-Knoten zu Schwarm oder Cluster hinzufügen

Um dem Schwarm oder Cluster Worker-Knoten hinzuzufügen, führen Sie den Befehl aus, den wir erhalten, wenn wir den Schwarm initialisieren. Beispielbefehl wird in Schritt 3 gezeigt

[[email protected] ~]# docker swarm join --token SWMTKN-1-4jjyu1btmdky0ou6gl2dwgt24bolpsdn5yd77pohmcnmz0s288-11xwcvzjar29fskkhfvlzsmhr 172.168.10.70:2377Dieser Knoten ist einem Schwarm als Worker beigetreten.[[email][protectemail ]~ ed[protected] ~]# docker swarm join --token SWMTKN-1-4jjyu1btmdky0ou6gl2dwgt24bolpsdn5yd77pohmcnmz0s288-11xwcvzjar29fskkhfvlzsmhr 172.168.10.70:2377Dieser Knoten ist einem Schwarm als Worker beigetreten.[[email protected] ~]#

Überprüfen Sie den Knotenstatus mit dem Befehl „docker node ls ” vom Docker-Manager

Zu diesem Zeitpunkt läuft unser Docker-Swarm-Modus oder -Cluster mit zwei Worker-Knoten. Im nächsten Schritt werden wir sehen, wie man einen Dienst definiert.

Schritt:4 Dienst im Docker Swarm-Modus starten

Im Docker-Schwarmmodus werden Container durch das Wort tasks ersetzt und Tasks (oder Container) werden gestartet und als Dienst bereitgestellt. Nehmen wir an, ich möchte einen Dienst mit dem Namen „Webserver“ erstellen mit fünf Containern und möchten sicherstellen, dass der gewünschte Status von Containern innerhalb des Dienstes fünf ist.

Führen Sie die folgenden Befehle nur vom Docker-Manager aus.

[[email protected] ~]# docker service create -p 80:80 --name webserver --replicas 5 httpd7hqezhyak8jbt8idkkke8wizi[[email protected] ~]#

Der obige Befehl erstellt einen Dienst mit dem Namen „webserver“, in dem der gewünschte Status von Containern oder Aufgaben 5 ist und Container vom Docker-Image „httpd“ gestartet werden “. Container werden über die Clusterknoten bereitgestellt, d. h. dkmanager , workernode1 und workernode2

Listen Sie den Docker-Dienst mit dem folgenden Befehl auf

[[email protected] ~]# docker service lsID            NAME       MODE        REPLIKAS  IMAGE7hqezhyak8jb  Webserver  repliziert  5/5       httpd:latest[[email protected] ~]#

Führen Sie den folgenden Befehl aus, um den Status Ihres Dienstes „Webserver“

anzuzeigen
[[email protected] ~]# docker service ps webserver

Gemäß der obigen Ausgabe können wir sehen, dass Container über die Cluster-Knoten hinweg bereitgestellt werden, einschließlich des Manager-Knotens. Jetzt können wir über die folgenden URLs von jedem Worker-Knoten und Docker Manager aus auf die Webseite zugreifen:

http:// 172.168.10.70 oder  http://172.168.10.80 oder http://172.168.10.90

Schritt:5 Testen Sie jetzt die Selbstheilung des Containers

Die Container-Selbstheilung ist das wichtige Merkmal des Docker-Schwarmmodus. Wie der Name schon sagt, stellt der Manager sicher, dass mindestens 5 Container für den Dienst „Webserver“ ausgeführt werden müssen, wenn etwas mit dem Container schief geht. Lassen Sie uns den Container von workernode2 entfernen und sehen, ob ein neuer Container gestartet wird oder nicht.

[[email protected] ~]# docker ps[[email protected] ~]# docker rm a9c3d2172670 -f

Überprüfen Sie nun den Dienst vom Docker-Manager und sehen Sie, ob ein neuer Container gestartet wird oder nicht

[[email protected] ~]# docker service ps webserver

Gemäß der obigen Ausgabe können wir sehen, dass ein neuer Container auf dem dkmanager-Knoten gestartet wird, weil einer der Container auf workernode2 entfernt wurde

Schritt:6 Container hoch- und herunterskalieren, die einem Dienst zugeordnet sind

Im Docker-Schwarmmodus können wir Container oder Aufgaben hoch- und herunterskalieren. Lassen Sie uns die Container für den Dienst „Webserver“ auf 7 hochskalieren ‘

[[email protected] ~]# docker service scale webserver=7webserver scaled to 7[[email protected] ~]#

Überprüfen Sie den Dienststatus erneut mit den folgenden Befehlen

Lassen Sie uns den Container für den Service-Webserver auf 4 herunterskalieren

[[email protected] ~]# docker service scale webserver=4webserver scaled to 4[[email protected] ~]#

Überprüfen Sie den Dienst erneut mit den folgenden Befehlen

Das ist alles für diesen Artikel. Ich hoffe, Sie haben eine Idee, wie Sie den Docker-Swarm-Modus unter CentOS 7.x und RHEL 7.x installieren und konfigurieren. Bitte zögern Sie nicht, Ihr Feedback und Ihre Kommentare zu teilen 🙂


Cent OS
  1. So installieren und konfigurieren Sie R auf einem Linux-System mit RHEL 8 / CentOS 8

  2. So installieren Sie Docker unter CentOS 7 / RHEL 7

  3. So installieren und konfigurieren Sie Docker in Rocky Linux/Centos 8

  4. CentOS / RHEL 7 :So installieren und konfigurieren Sie Telnet

  5. So installieren und konfigurieren Sie Samba in CentOS / RHEL

So installieren und konfigurieren Sie einen Docker Swarm-Cluster unter CentOS 8

So installieren und konfigurieren Sie den VNC-Server in CentOS 7 / RHEL 7

So installieren und konfigurieren Sie Docker Swarm unter CentOS 7 / Ubuntu 16.04 / Fedora 26/25

So installieren und konfigurieren Sie Jenkins unter CentOS 8 / RHEL 8

So installieren und konfigurieren Sie MariaDB in CentOS / RHEL 7

So installieren und konfigurieren Sie VNC Server unter CentOS/RHEL 8