Konsul - Arbeiten mit Microservices

In diesem Kapitel erfahren Sie, wie Microservices mit Consul zusammenarbeiten. Wir werden auch erfahren, wie sich die folgenden Komponenten auf Consul auswirken.

  • Docker verwenden
  • Gebäuderegistrator für Service Discovery
  • Mit rkt und Nomad

Lassen Sie uns nun jeden dieser Punkte im Detail besprechen.

Docker verwenden

Bevor es losgeht, please do not use this setup in productionda es nur für Demozwecke verwendet wird. Docker ist ein containergestützter Dienst, mit dem wir unsere Anwendungen problemlos bereitstellen können. Für die Verwendung von Consul verwenden wir das Bild unter dem folgenden Link –0

https://hub.docker.com/r/progrium/consul/.

Es wird davon ausgegangen, dass auf Ihrem System Docker installiert und ordnungsgemäß konfiguriert ist. Versuchen wir, das Image vom Docker-Hub herunterzuziehen, indem Sie den folgenden Befehl ausführen:

$ docker pull progrium/consul

Die Ausgabe erfolgt wie im folgenden Screenshot gezeigt.

Wir werden einige Schnittstellen mit ihren Ports (mit der Option -p in Docker) auf folgende Weise veröffentlichen.

  • 8400 (RPC)
  • 8500 (HTTP)
  • 8600 (DNS)

Auch gemäß dem gezogenen Pull setzen wir den Namen des Hostnamens auf node1Sie können es mit dem ändern, was Sie wollen -h flag mit einem eigenen Hostnamen wie unten gezeigt.

$ docker run -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul
-server -bootstrap

Die Ausgabe erfolgt wie im folgenden Screenshot gezeigt.

Sie können den UI-Modus für den Konsul auch mit - aktivieren

$ docker run -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul
-server -bootstrap -ui-dir /ui

Sie können die UI-basierte Ausgabe auf überprüfen http://localhost:8500. Der folgende Screenshot gibt Ihnen eine bessere Vorstellung von der UI-basierten Ausgabe.

Um den Konsul über verschiedene Docker-Container auf verschiedenen Knoten zu verwenden, können wir die folgenden Befehle auf verschiedenen Knoten ausführen:

Auf Knoten1

$ docker run -d --name node1 -h node1 progrium/consul -server -bootstrap-expect 3

Wo, -bootstrap-expect 3 bedeutet, dass der Konsulenserver wartet, bis 3 Peers verbunden sind, bevor er sich selbst bootet und zu einem funktionierenden Cluster wird.

Bevor wir fortfahren, müssen wir die interne IP des Containers durch Inspektion des Containers ermitteln. Für unsere Verwendung, Fall Zweck, werden wir die deklarieren$ JOIN_IP.

$ JOIN_IP = "$(docker inspect -f '{{.NetworkSettings.IPAddress}}' node1)"

Auf Node2

Starten wir also Node2 und weisen Sie es an, Node1 mit der im oben angegebenen Programm deklarierten Variablen beizutreten.

$docker run -d --name node2 -h node2 progrium/consul -server -join $JOIN_IP

Auf Node3

$ docker run -d --name node3 -h node3 progrium/consul -server -join $JOIN_IP

Gebäuderegistrator für Service Discovery

Der Registrator registriert und hebt automatisch Dienste für jeden Docker-Container auf, indem er die Container überprüft, sobald sie online sind. Der Registrator, den wir verwenden werden, unterstützt derzeit steckbare Serviceregistrierungen, einschließlich derzeitConsul, Etcd und SkyDNS2. Die Verwendung von Registrator wird dringend empfohlen, wenn wir mit verschiedenen Diensten über das Netzwerk interagieren.

$ docker pull gliderlabs/registrator:latest

Die Ausgabe erfolgt wie im folgenden Screenshot gezeigt.

$ docker run -d \
--name = registrator \
--net = host \
--volume = /var/run/docker.sock:/tmp/docker.sock \
gliderlabs/registrator:latest \
 consul://localhost:8500

Die Ausgabe erfolgt wie im folgenden Screenshot gezeigt.

Die Ausgabe, die Sie erhalten haben, ist die ID des Docker-Containers, den Sie gerade gestartet haben. Mit dem Befehl - können Sie überprüfen, ob der Container ausgeführt wird oder nicht.

$ docker ps -a

Die Ausgabe erfolgt wie im folgenden Screenshot gezeigt.

Sie können die Protokolle von Registrator auch mit dem folgenden Befehl anzeigen.

$ docker logs registrator

Mit rkt und Nomad

Der rkt ist ein weiterer container-basierter Dienst, den Sie in Ihrer Umgebung verwenden können. Es ist gebaut vonCoreOS. Der Hauptgrund für den Aufbau von rkt war die Verbesserung der Sicherheit, die eines der Krisenprobleme für Docker war, als es sich 2013/14 noch in der Entwicklung befand.

Für Consul können wir den Rkt-Registrator verwenden, um mit Consul an der Serviceerkennung zu arbeiten. Dieses spezielle Registrator-Projekt, das für rkt abgedeckt ist, befindet sich in der Entwicklung und istnot recommended for production level use.

Sie können überprüfen, ob rkt installiert ist oder nicht, indem Sie zu seinem Pfad gehen und den folgenden Befehl ausführen.

$ ./rkt

Sie können die Ausgabe überprüfen, um zu überprüfen, ob sie korrekt installiert ist oder nicht, wie im folgenden Screenshot gezeigt.

Um rkt und Consul auszuprobieren, schauen Sie bitte vorbei - https://github.com/r3boot/rkt-registrator.

Nomad Tool

Eine der am häufigsten verwendeten und beliebtesten Optionen ist das Nomad-Tool. Nomad ist ein Tool zum Verwalten eines Cluster von Computern und zum Ausführen von Anwendungen auf diesen. Es ist ähnlich wieMesos oder Kubernetes. Standardmäßig deckt Nomad den Docker- und den RKT-Treiber in sich ab. Wenn Sie also nach einer groß angelegten Bereitstellung von Containern mit Consul suchen. Nomad könnte eine gute Lösung dafür sein. Check out -https://www.nomadproject.io/docs/drivers/rkt.html Weitere Informationen zu Nomad.