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