Wie man Docker Swarm Cluster auf Ubuntu einrichtet und konfiguriert

Docker Swarm ist ein Tool, mit dem Sie einen Cluster von Docker Hosts bereitstellen können. Es handelt sich um ein natives Clustering-Tool von Docker, das eine hohe Verfügbarkeit und Leistung für Ihre Anwendung bietet, indem es auf alle Knoten innerhalb des Schwarmclusters verteilt wird.

In diesem Tutorial zeigen wir Ihnen Schritt für Schritt, wie Sie mit Ubuntu 16.04 einen Swarm Cluster erstellen. Wir werden einen Schwarmcluster mit 2 Ubuntu-Servermaschinen, 1 Serverknoten als Manager und 1 weiteren als Arbeiter erstellen. Und dann werden wir versuchen, den einfachen Nginx-Dienst auf den Swarm-Cluster zu verteilen.

Voraussetzungen

  • 2 oder mehr – Ubuntu 16.04 Server
    • Manager 132.92.41.41.4
    • worker01 132.92.41.41.5
  • Root-Rechte

Was werden wir tun?

  1. Hosts konfigurieren
  2. Docker-ce installieren
  3. Docker Swarm Initialisierung
  4. Bereitstellung des ersten Dienstes für den Cluster

Schritt 1 – Hosts konfigurieren

Bevor wir Pakete für den Swarm-Cluster installieren, werden wir die Hosts-Datei auf beiden Servern konfigurieren.

Führen Sie die folgenden Befehle auf allen Servern aus, ‚manager‘ und ‚worker01‘.

Bearbeiten Sie die Datei ‚/etc/hosts‘ mit dem vim editor.

vim /etc/hosts

Fügen Sie die folgende Konfiguration am Ende der Zeile hinzu.

132.92.41.4    manager
 132.92.41.5    worker01

Speichern und beenden.

Jetzt pingen Sie alle Knoten mit’hostname‘ statt mit der IP-Adresse.

ping -c 3 manager
ping -c 3 worker01

Und stellen Sie sicher, dass es auf allen Rechnern funktioniert.

Hosts konfigurieren

Schritt 2 – Docker-ce installieren

Um den Swarm-Cluster zu erstellen, müssen wir Docker auf allen Serverknoten installieren. In diesem Schritt werden wir Docker-ce Community Edition sowohl auf dem Server-Manager als auch auf worker01 installieren.

Installieren Sie Docker-ce-Abhängigkeiten mit dem folgenden apt-Befehl.

sudo apt install apt-transport-https software-properties-common ca-certificates -y

Fügen Sie nun den Docker-Schlüssel und das Docker-ce-Repository zu unseren Servern hinzu.

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" > /etc/apt/sources.list.d/docker-ce.list

Aktualisieren Sie das Repository und installieren Sie Docker-ce-Pakete mit dem untenstehenden Befehl apt install.

sudo apt update
sudo apt install docker-ce -y

Nachdem die Installation abgeschlossen ist, starten Sie den Docker-Dienst und aktivieren Sie ihn, damit er jedes Mal beim Systemstart gestartet werden kann.

systemctl start docker
systemctl enable docker

Docker-ce ist nun auf unseren Serverknoten installiert.

Als nächstes werden wir den Docker so konfigurieren, dass er als normaler Benutzer oder Nicht-Root-Benutzer ausgeführt wird.

Erstellen Sie einen neuen Benutzer namens’mohammad‘ und fügen Sie ihn der Gruppe’docker‘ hinzu.

useradd -m -s /bin/bash mohammad
sudo usermod -aG docker mohammad

Melden Sie sich nun beim Benutzer’mohammad‘ an und führen Sie den Befehl docker hello-world wie unten beschrieben aus.

su - mohammad
docker run hello-world

Und du bekommst die Hallo-Welt vom Docker, wie unten gezeigt.

Docker-ce installieren

Schritt 3 – Erstellen des Schwarmclusters

In diesem Schritt erstellen wir den Schwarmcluster unserer Knoten. Und um die Swarm-Cluster-Knoten zu erstellen, müssen wir den Swarm-Modus auf dem Knoten „Manager“ initialisieren und dann den Knoten „worker01“ mit dem Cluster verbinden.

Initialisieren Sie den Docker Swarm-Modus, indem Sie den untenstehenden Docker-Befehl auf dem Knoten’manager‘ ausführen.

docker swarm init --advertise-addr 132.92.41.4

Und Sie erhalten das Ergebnis wie unten gezeigt.

Erstellen des Schwarmclusters

Sie werden sehen, dass das’join-token‘ vom Knoten’manager‘ generiert wurde.

Als nächstes müssen wir den Knoten’worker01′ zum Cluster’manager‘ hinzufügen. Und um das zu tun, benötigen wir ein „Join-Token“ vom Clusterknoten „Manager“, also schreiben Sie es auf Ihre Notiz.

Führen Sie den Docker Swarm Join-Befehl auf dem Knoten’worker01′ aus.

docker swarm join --token SWMTKN-1-5p5ujrr67rl2rlmyvrj56fksblbcrtaeirf7fj5r4snid2vn6y-918gbqr02m64xct43i2ssi4qs 132.92.41.4:2377

Nun erhalten Sie das Ergebnis wie unten gezeigt.

Docker Schwarm verbinden

Der Knoten’worker01′ wurde mit dem Cluster verbunden.

Überprüfen Sie dies, indem Sie den folgenden Befehl auf dem Knoten’manager‘ ausführen.

docker node ls

Jetzt sehen Sie, dass der Knoten’worker01′ mit dem Schwarmcluster verbunden wurde.

Knoten wurde mit dem Schwarmcluster verbunden.

Der Schwarmcluster wurde erstellt.

Schritt 4 – Bereitstellung des ersten Dienstes für den Cluster

In diesem Schritt werden wir unseren ersten Dienst für den Swarm-Cluster erstellen und bereitstellen. Wir möchten einen neuen Dienst Nginx-Webserver erstellen, der auf dem standardmäßigen http-Port 80 ausgeführt wird, und ihn dann auf dem Hostserver auf dem Port 8080 freigeben, und dann versuchen, den nginx-Dienst innerhalb des Swarmclusters zu replizieren.

Service anlegen

Erstellen Sie einen neuen Nginx-Dienst namens „my-web“ und stellen Sie den HTTP-Port des Containers dem Port 8080 auf dem Host zur Verfügung.

docker service create --name my-web --publish 8080:80 nginx:1.13-alpine

Und wenn es erstellt ist, überprüfen Sie es mit dem Befehl docker service unten.

docker service ls

Und Sie erhalten das Ergebnis wie unten gezeigt.

Einen Service anlegen

Der Nginx-Dienst wurde erstellt und als Dienst namens „my-web“ im Swarm-Cluster bereitgestellt, basiert auf dem Nginx Alpine Linux, stellt den HTTP-Port des Containerdienstes dem Port „8080“ auf dem Host zur Verfügung und hat nur 1 Replikat.

Repliziert und skaliert den Service

Jetzt werden wir Replikate für den Dienst „my-web“ erstellen. Wir werden 2 Replikate des Dienstes „my-web“ erstellen, so dass der Dienst auf den Knoten „manager“ und „worker01“ zugänglich ist.

Um den Dienst „my-web“ zu replizieren, führen Sie den folgenden Befehl aus.

docker service scale my-web=2

Und nachdem es abgeschlossen ist, überprüfen Sie es erneut mit dem Befehl docker service.

docker service ls

Und jetzt hat der Server 2 Replikate.

Repliziert und skaliert den Service

Öffnen Sie Ihren Webbrowser und geben Sie die IP-Adresse des Managerknotens mit Port 8080 ein.

http://manager:8080/

Und Sie erhalten die Nginx-Standardseite.

Verwaltungsknoten

Unten sehen Sie das Ergebnis des Knotens’worker01′.

http://worker01:8080/

Arbeiterknoten

Der Swarm Cluster wurde erstellt, und der Nginx-Dienst wurde in unserem Swarm Cluster bereitgestellt.

Referenz

Das könnte Dich auch interessieren …