Wie man den docker service scale-Befehl verwendet, um Dienste zu skalieren

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab erfahren Sie, wie Sie die Anzahl der laufenden Instanzen (Replikas) Ihrer Dienste in einem Docker Swarm effektiv verwalten können. Wir beginnen damit, einen replizierten Dienst zu erstellen und einen Ausgangspunkt mit mehreren laufenden Kopien zu setzen.

Nach der Erstellung werden Sie untersuchen, wie Sie die Skalierung des Dienstes dynamisch anpassen können. Dies umfasst das Hochskalieren eines einzelnen Dienstes, um erhöhte Nachfragen zu bewältigen, das Herunterskalieren, auch bis auf null Replikas, und schließlich das gleichzeitige Skalieren mehrerer Dienste, um komplexe Bereitstellungen zu verwalten. Durch praktische Befehle werden Sie praktische Erfahrungen in der Verwendung des Befehls docker service scale sammeln, um Hochverfügbarkeit und eine optimale Ressourcennutzung für Ihre containerisierten Anwendungen zu erreichen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/ls -.-> lab-555231{{"Wie man den docker service scale-Befehl verwendet, um Dienste zu skalieren"}} docker/ps -.-> lab-555231{{"Wie man den docker service scale-Befehl verwendet, um Dienste zu skalieren"}} docker/rm -.-> lab-555231{{"Wie man den docker service scale-Befehl verwendet, um Dienste zu skalieren"}} docker/inspect -.-> lab-555231{{"Wie man den docker service scale-Befehl verwendet, um Dienste zu skalieren"}} docker/pull -.-> lab-555231{{"Wie man den docker service scale-Befehl verwendet, um Dienste zu skalieren"}} end

Erstellen eines replizierten Dienstes

In diesem Schritt erfahren wir, wie man einen replizierten Dienst mit Docker erstellt. Ein replizierter Dienst bedeutet, dass mehrere identische Kopien (Replikas) Ihres Dienstes gleichzeitig laufen. Dies sorgt für Hochverfügbarkeit und ermöglicht es Ihnen, mehr Traffic zu bewältigen.

Zunächst laden wir das erforderliche Docker-Image herunter. Wir verwenden für dieses Beispiel das alpine-Image.

docker pull alpine

Sie sollten eine Ausgabe sehen, die anzeigt, dass das Image heruntergeladen wird.

Jetzt erstellen wir einen replizierten Dienst namens my-alpine-service mit 3 Replikas. Wir verwenden das alpine-Image und den Befehl ping localhost. Dieser Befehl wird in jedem Container ausgeführt und sendet kontinuierlich Pings an den localhost.

docker service create --name my-alpine-service --replicas 3 alpine ping localhost

Nachdem Sie diesen Befehl ausgeführt haben, wird Docker Swarm den Dienst erstellen und die angegebene Anzahl von Replikas starten. Sie sollten eine Ausgabe sehen, die die Erstellung des Dienstes bestätigt.

Um zu überprüfen, ob der Dienst erstellt wurde und die Replikas laufen, können Sie die Dienste auflisten.

docker service ls

Sie sollten my-alpine-service mit 3 Replikas aufgeführt sehen.

Sie können auch den Dienst untersuchen, um weitere Details zu erhalten.

docker service inspect my-alpine-service

Dieser Befehl gibt ein großes JSON-Objekt aus, das detaillierte Informationen über den Dienst enthält, einschließlich der Anzahl der Replikas.

Schließlich überprüfen wir die mit dem Dienst verbundenen Aufgaben, um die einzelnen laufenden Container zu sehen.

docker service ps my-alpine-service

Dieser Befehl zeigt den Status jeder Replik (Aufgabe) des Dienstes an. Sie sollten 3 Aufgaben aufgeführt sehen, die jeweils im laufenden Zustand sind.

Ein einzelnen Dienst hochskalieren

In diesem Schritt erfahren wir, wie man einen einzelnen Dienst hochskaliert. Hochskalieren bedeutet, die Anzahl der Replikas für einen Dienst zu erhöhen. Dies ist nützlich, wenn Sie eine erhöhte Last oder einen höheren Traffic bewältigen müssen.

Im vorherigen Schritt haben wir einen Dienst namens my-alpine-service mit 3 Replikas erstellt. Jetzt skalieren wir diesen Dienst auf 5 Replikas hoch. Hierfür können wir den Befehl docker service scale verwenden.

docker service scale my-alpine-service=5

Nachdem Sie diesen Befehl ausgeführt haben, wird Docker Swarm 2 neue Replikas zum Dienst hinzufügen. Sie sollten eine Ausgabe sehen, die anzeigt, dass der Dienst aktualisiert wird.

Um zu überprüfen, ob der Dienst hochskaliert wurde, können Sie die Dienste erneut auflisten.

docker service ls

Sie sollten jetzt my-alpine-service mit 5 Replikas aufgeführt sehen.

Sie können auch die mit dem Dienst verbundenen Aufgaben überprüfen, um die neu erstellten Container zu sehen.

docker service ps my-alpine-service

Dieser Befehl zeigt den Status aller 5 Replikas (Aufgaben) des Dienstes an. Sie sollten 5 Aufgaben aufgeführt sehen, wobei die neuen in den laufenden Zustand übergehen.

Einen einzelnen Dienst auf null Replikas herunterskalieren

In diesem Schritt erfahren wir, wie man einen einzelnen Dienst auf null Replikas herunterskaliert. Das Herunterskalieren auf null beendet effektiv alle Instanzen des Dienstes. Dies kann nützlich sein, um einen Dienst vorübergehend zu stoppen, ohne seine Konfiguration zu entfernen.

Im vorherigen Schritt haben wir den my-alpine-service auf 5 Replikas hochskaliert. Jetzt skalieren wir diesen Dienst auf 0 Replikas herunter. Wir verwenden erneut den Befehl docker service scale.

docker service scale my-alpine-service=0

Nachdem Sie diesen Befehl ausgeführt haben, wird Docker Swarm alle laufenden Replikas des Dienstes stoppen und entfernen. Sie sollten eine Ausgabe sehen, die anzeigt, dass der Dienst aktualisiert wird.

Um zu überprüfen, ob der Dienst auf null herunterskaliert wurde, können Sie die Dienste auflisten.

docker service ls

Sie sollten jetzt my-alpine-service mit 0 Replikas aufgeführt sehen.

Sie können auch die mit dem Dienst verbundenen Aufgaben überprüfen.

docker service ps my-alpine-service

Dieser Befehl zeigt den Status der Aufgaben an. Da wir auf null herunterskaliert haben, sollten keine laufenden Aufgaben aufgeführt sein. Möglicherweise sehen Sie Aufgaben im Zustand "Shutdown", was darauf hinweist, dass sie gestoppt wurden.

Mehrere Dienste skalieren

In diesem Schritt erfahren wir, wie man mehrere Dienste gleichzeitig skaliert. Dies ist nützlich, wenn Sie mehrere Dienste haben, die zusammen skaliert werden müssen, beispielsweise verschiedene Komponenten einer Anwendung.

Zunächst erstellen wir einen weiteren Dienst. Wir werden einen Dienst namens my-nginx-service mit dem nginx-Image und 1 Replika erstellen. Zuerst müssen wir das nginx-Image herunterladen.

docker pull nginx

Sie sollten eine Ausgabe sehen, die anzeigt, dass das nginx-Image heruntergeladen wird.

Jetzt erstellen wir den my-nginx-service.

docker service create --name my-nginx-service --replicas 1 nginx

Sie sollten eine Ausgabe sehen, die die Erstellung des my-nginx-service bestätigt.

Jetzt haben wir zwei Dienste: my-alpine-service (der derzeit auf 0 skaliert ist) und my-nginx-service (der auf 1 skaliert ist). Skalieren wir beide Dienste gleichzeitig. Wir werden my-alpine-service auf 2 Replikas und my-nginx-service auf 3 Replikas skalieren.

docker service scale my-alpine-service=2 my-nginx-service=3

Nachdem Sie diesen Befehl ausgeführt haben, wird Docker Swarm beide Dienste gemäß den angegebenen Replikazahlen aktualisieren. Sie sollten eine Ausgabe sehen, die anzeigt, dass beide Dienste aktualisiert werden.

Um zu überprüfen, ob beide Dienste skaliert wurden, können Sie die Dienste auflisten.

docker service ls

Sie sollten jetzt my-alpine-service mit 2 Replikas und my-nginx-service mit 3 Replikas aufgeführt sehen.

Sie können auch die Aufgaben für jeden Dienst einzeln überprüfen, um die laufenden Container zu sehen.

docker service ps my-alpine-service

Dies zeigt die 2 laufenden Aufgaben für my-alpine-service.

docker service ps my-nginx-service

Dies zeigt die 3 laufenden Aufgaben für my-nginx-service.

Abschließend bereinigen wir die von uns erstellten Dienste. Wir können beide Dienste mit dem Befehl docker service rm entfernen.

docker service rm my-alpine-service my-nginx-service

Sie sollten eine Ausgabe sehen, die die Entfernung beider Dienste bestätigt.

Um zu überprüfen, ob die Dienste entfernt wurden, listen Sie die Dienste erneut auf.

docker service ls

Es sollten keine Dienste aufgeführt sein.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man die Skalierung von Docker-Diensten verwaltet. Wir haben begonnen, indem wir einen replizierten Dienst mit einer bestimmten Anzahl von Replikas erstellt haben, was die anfängliche Bereitstellung einer fehlertoleranten Anwendung demonstriert. Anschließend haben wir untersucht, wie man die Anzahl der laufenden Instanzen für einen einzelnen Dienst dynamisch anpasst, zunächst indem wir ihn hochskaliert haben, um erhöhte Nachfrage zu bewältigen, und anschließend indem wir ihn herunterskaliert haben, einschließlich der Reduzierung der Replikas auf null, um den Dienst effektiv zu stoppen.

Schließlich haben wir gelernt, wie man mehrere Dienste gleichzeitig skaliert, was die Fähigkeit zeigt, die Ressourcenzuweisung für mehrere Anwendungen in einer Docker Swarm-Umgebung mit einem einzigen Befehl zu verwalten. Diese Schritte haben uns praktische Erfahrungen in der Verwendung des Befehls docker service scale zur effizienten Verwaltung des Lebenszyklus und der Ressourcenauslastung von Diensten vermittelt.