GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So stellen Sie einen Dienst in einem Docker Swarm-Cluster bereit

Mehr über Rechenzentren

Docker Swarm ist einer der einfachsten Container-Cluster, die Sie bereitstellen können. Innerhalb weniger Minuten können Sie Ihren Cluster für Hochverfügbarkeit, Failover und Skalierbarkeit in Betrieb nehmen. Sobald es betriebsbereit ist, können Sie Container für den Schwarm bereitstellen, um die Vorteile des Clusters zu nutzen. Beispielsweise könnten Sie einen Dienst bereitstellen, der sich skalieren lässt, um allen Anforderungen gerecht zu werden.

Genau das zeige ich dir. Hier installieren wir zuerst den Docker Swarm und stellen dann einen Dienst für den neuen Cluster bereit, sodass er auf das Maß skaliert werden kann, das den Anforderungen Ihres Unternehmens entspricht.

Was Sie brauchen

Ich werde auf einem Cluster demonstrieren, der aus einem Controller und zwei Knoten besteht, die alle auf Ubuntu Server 20.04 ausgeführt werden. Wenn Sie eine andere Linux-Distribution verwenden, müssen Sie möglicherweise die Docker-Installationsschritte ändern (aber nicht mehr).

Lassen Sie uns in diesem Sinne schwärmen.

So installieren Sie Docker

Als erstes müssen wir Docker installieren. Stellen Sie sicher, dass Sie dieselben Schritte auf Ihrem Controller ausführen und wie viele Knoten Sie bereitstellen möchten.

Melden Sie sich bei Ihrem Server an und aktualisieren Sie apt mit:

sudo apt-get update

Als nächstes installieren Sie die notwendigen Abhängigkeiten mit dem Befehl:

sudo apt-get install ca-certificates curl gnupg lsb-release -y

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

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Fügen Sie das stabile Docker-Repository hinzu mit:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Docker-Engine installieren mit:

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io -y

Starten und aktivieren Sie Docker mit:

sudo systemctl enable --now docker

Fügen Sie Ihren Benutzer mit dem Befehl:

zur Docker-Gruppe hinzu

sudo usermod -aG docker $USER

Machen Sie das System auf die neue Gruppe aufmerksam mit:

newgrp docker

Wiederholen Sie die obigen Schritte für alle Ihre Knoten.

Zurück am Docker-Controller initialisieren Sie den Schwarm mit:

docker swarm init --advertise-addr SERVER

Wobei SERVER die IP-Adresse für den Docker-Controller ist.

Daraufhin wird Ihnen der Join-Befehl angezeigt, der in etwa so aussieht:

docker swarm join --token SWMTKN-1-46uxtlbe3wrelly1fe5e65p1wdvg95bcjo48izvptpwof62rdo-42yl4jprovhng56sgxmyv7arv 192.168.1.13:2377

Kopieren Sie diesen Befehl und führen Sie ihn von allen Ihren Knoten aus. Sobald Sie dies getan haben, können Sie den Beitritt überprüfen, indem Sie den folgenden Befehl auf dem Controller ausgeben:

docker info

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

Swarm: active

NodeID: wb44efzwy68x9gek45ee1nbnb

Is Manager: true

ClusterID: vjec4hz1sjj535x9w0mspox87

Managers: 1

Nodes: 3

Default Address Pool: 10.0.0.0/8

SubnetSize: 24

Data Path Port: 4789

Orchestration:

Task History Retention Limit: 5

So stellen Sie einen Dienst für den Schwarm bereit

Jetzt können wir unserem Schwarm einen Dienst bereitstellen. Lassen Sie uns das zunächst einfach halten und einen NGINX-Containerdienst bereitstellen, mit dem wir nicht interagieren können. Geben Sie dazu den folgenden Befehl auf dem Controller aus:

docker service create --name nginx_test nginx

Geben Sie den folgenden Befehl ein, um den Status des Dienstes zu überprüfen:

docker service ls

Sie sollten sehen, dass unser NGINX-Dienst mit einer Ausgabe ähnlich der folgenden repliziert wurde:

zie1n4nm5es3   nginx_test             replicated   1/1                nginx:latest

Unser obiges Beispiel nutzt nur einen unserer Knoten. Was ist, wenn wir diesen Dienst auf allen drei Knoten bereitstellen möchten? Dafür würde unser Befehl etwa so aussehen:

docker service create --replicas 3 --name nginx3nodes nginx

Geben Sie den Befehl ein:

docker service ls

Sie sollten sehen, dass unsere nginx3nodes-Bereitstellung mit der folgenden Ausgabe auf 3 von 3 Knoten repliziert wurde:

y1yu8fq27aab   nginx3nodes              replicated   3/3                nginx:latest

Der Dienst nutzt jetzt alle drei Knoten in unserem Cluster. Sie können diesen Dienst mit dem folgenden Befehl auf 2 Knoten herunterskalieren:

docker service scale nginx3nodes=2

Überprüfen Sie den Status mit:

docker service ls

Sie sollten jetzt den nginx-Dienst auf 2/2 Knoten sehen.

Angenommen, Sie haben fünf Knoten in Ihrem Schwarm. Wenn Sie den Dienst auf alle fünf Knoten skalieren möchten, lautet der Befehl:

docker service scale nginx3nodes=5

Um den Dienst zu löschen, geben Sie den folgenden Befehl ein:

docker service rm nginx3nodes

Angenommen, Sie möchten das Container-Image in Ihrer Bereitstellung aktualisieren. Seit der ursprünglichen Bereitstellung sind einige Tage vergangen, und Sie möchten sicherstellen, dass Sie das neueste verfügbare Container-Image verwenden. Wir gehen davon aus, dass nginx:latest ein aktualisiertes Container-Image ist, und um diesen Dienst mit dem neuen Image zu aktualisieren, geben Sie den folgenden Befehl aus:

docker service update --image nginx:latest nginx3nodes

Ein letzter Hinweis:Wenn Sie den Schwarm einfacher verwalten möchten, stellen Sie Portainer auf dem Controller mit dem Befehl bereit:

docker run -d -p 8000:8000 -p 9443:9443 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Gehen Sie nach der Bereitstellung zu http://SERVER:9443 (wobei SERVER die IP-Adresse des Servers ist). Nachdem Sie einen Admin-Benutzer erstellt und sich angemeldet haben, sollten Sie Swarm in der linken Navigation aufgelistet sehen. Klicken Sie darauf, um Ihren Cluster anzuzeigen (Abbildung A ).

Abbildung A

Und das sind so ziemlich die Grundlagen für das Hochfahren eines Docker-Schwarms und das Bereitstellen eines Dienstes für die Knoten.

Abonnieren Sie TechRepublic Wie man Technik auf YouTube zum Laufen bringt für die neuesten technischen Ratschläge für Geschäftsleute von Jack Wallen.

Quelllink


Linux
  1. So stellen Sie Nginx Load Balancing auf einem Kubernetes-Cluster unter Ubuntu 18.04 LTS bereit

  2. So stellen Sie Ihren ersten Pod in einem Kubernetes-Cluster bereit

  3. So stellen Sie Microservices mit Docker bereit

  4. So stellen Sie Apps mit Rancher bereit

  5. So stellen Sie einen Nginx-Container mit Docker auf Linode bereit

So installieren Sie einen Kubernetes-Docker-Cluster unter CentOS 7

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

So stellen Sie Kubernetes-Cluster auf AWS mit Amazon EKS bereit

So stellen Sie Pi-Hole unter Debian 11 bereit

So stellen Sie CouchDB als Cluster mit Docker bereit

So stellen Sie Docker-Container in Jelastic Cloud bereit