Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Linux und Docker: Wie implementiert man einen hochverfügbaren Container-Cluster?
Linux und Docker: Wie implementiert man einen hochverfügbaren Container-Cluster?
Zusammenfassung: Mit der Entwicklung der Containertechnologie stellen immer mehr Unternehmen nach und nach Anwendungen in Containern bereit. In einer Produktionsumgebung ist das Erreichen einer hohen Verfügbarkeit für einen Containercluster von entscheidender Bedeutung. In diesem Artikel wird die Verwendung von Linux und Docker zum Aufbau eines hochverfügbaren Containerclusters vorgestellt und die spezifische Implementierungsmethode anhand von Codebeispielen demonstriert.
Installieren Sie zunächst Docker auf jedem Docker-Host, dem Sie dem Cluster beitreten möchten. Wählen Sie dann einen Host als Verwaltungsknoten des Swarm-Clusters aus und führen Sie den folgenden Befehl aus, um den Cluster zu initialisieren:
$ docker swarm init --advertise-addr <MANAGER-IP>
Wobei 50c92af3965d072a01ca8b69c30c4169 die IP-Adresse des Verwaltungsknotens ist. Mit dem obigen Befehl erhalten wir ein Token für den Beitritt anderer Hosts zum Cluster. Führen Sie als Nächstes den folgenden Befehl auf anderen Hosts aus, die dem Cluster beitreten möchten:
$ docker swarm join --token <TOKEN> <MANAGER-IP>:<PORT>
Darunter ist fe44cc81ab4c20272595cc1edf562112 das im vorherigen Schritt erhaltene Token, 50c92af3965d072a01ca8b69c30c4169 der Verwaltungsknoten bzw. der Portnummer.
Zunächst installieren und starten Sie Consul auf allen Docker-Hosts. Führen Sie dann den folgenden Befehl aus, um einen Consul-Dienst zu erstellen:
$ docker service create --name consul --publish 8500:8500 --constraint 'node.role == manager' gliderlabs/consul-server -bootstrap
Dieser Befehl erstellt einen Dienst namens „consul“ auf dem Verwaltungsknoten des Swarm-Clusters und ordnet den 8500-Port des Containers dem 8500-Port des Hosts zu.
Führen Sie als Nächstes den folgenden Befehl auf anderen Knoten aus, um dem Consul-Dienst beizutreten:
$ docker service create --name consul --network <NETWORK> gliderlabs/consul-agent -join consul
Wobei 1d4d001a3682e7356cdcdf6423e29e0f der Netzwerkname des Swarm-Clusters ist.
Bereiten Sie zunächst ein Docker-Image vor, das die Anwendung enthält, die wir bereitstellen möchten. Führen Sie dann den folgenden Befehl aus, um einen Dienst zu erstellen:
rrreewobei 1f69d38ff7f38c32e75a871d13a954c2 die Anzahl der bereitzustellenden Containerinstanzen ist, a3b0c87895079be75e30be94102cc20b < ;IMAGE> ist das Docker-Image, in dem sich die Anwendung befindet.
Mit dem folgenden Befehl können Sie den Betriebsstatus des Dienstes und die Verteilung der Containerinstanzen anzeigen:
$ docker service create --name <SERVICE-NAME> --replicas <REPLICAS> --publish <PORT> <IMAGE>
Mit dem folgenden Befehl können Sie die Anzahl der Instanzen eines Dienstes erweitern:
$ docker service ls $ docker service ps <SERVICE-NAME>
wobei 1f69d38ff7f38c32e75a871d13a954c2 der Name des Dienstes und f9137ba0285552c9339eaf6686d35256 ist.
Zusammenfassung: Die Verwendung von Linux und Docker zum Aufbau eines hochverfügbaren Containerclusters verbessert nicht nur die Verfügbarkeit von Anwendungen, sondern bietet auch elastische Skalierungs- und Lastausgleichsfunktionen. Durch eine angemessene Konfiguration und Verwaltung können wir effiziente und stabile Containerdienste erreichen.
Codebeispiel:
Schwarmcluster initialisieren:
$ docker service scale <SERVICE-NAME>=<REPLICAS>
Schwarmcluster beitreten:
$ docker swarm init --advertise-addr 192.168.0.1
Konsuldienst erstellen:
$ docker swarm join --token <TOKEN> 192.168.0.1:2377
Konsuldienst beitreten:
$ docker service create --name consul --publish 8500:8500 --constraint 'node.role == manager' gliderlabs/consul-server -bootstrap
Bewerbungsdienst erstellen:
$ docker service create --name consul --network my-network gliderlabs/consul-agent -join consul
Erweitern Sie die Anzahl der Serviceinstanzen:
$ docker service create --name my-service --replicas 3 --publish 8080:8080 my-app
Das obige ist der detaillierte Inhalt vonLinux und Docker: Wie implementiert man einen hochverfügbaren Container-Cluster?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!