Console - Lavorare con Microservices

In questo capitolo capiremo come funzionano i microservizi con Consul. Impareremo anche come i seguenti componenti influenzano Console.

  • Utilizzando docker
  • Registratore di edifici per l'individuazione dei servizi
  • Utilizzando rkt e Nomad

Discutiamo ora ciascuno di questi in dettaglio.

Utilizzando Docker

Prima di cominciare, please do not use this setup in productionin quanto viene utilizzato solo a scopo dimostrativo. Docker è un servizio basato su container tramite il quale possiamo distribuire facilmente le nostre applicazioni. Per utilizzare Consul, utilizzeremo l'immagine al seguente link –0

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

Si presume che il tuo sistema abbia Docker installato e configurato correttamente. Proviamo a estrarre l'immagine dall'hub Docker, eseguendo il seguente comando:

$ docker pull progrium/consul

L'output sarebbe come mostrato nello screenshot seguente.

Pubblicheremo alcune interfacce con le loro porte (usando l'opzione -p su Docker) nel modo seguente.

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

Inoltre, come per il pull fatto, imposteremo il nome del nome host come node1Puoi cambiarlo in qualsiasi cosa tu voglia usando il -h flag con un tuo nome host come mostrato di seguito.

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

L'output sarebbe come mostrato nello screenshot seguente.

Puoi anche abilitare la modalità UI per il Console usando:

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

È possibile controllare l'output basato sull'interfaccia utente su http://localhost:8500. Lo screenshot seguente offre un'idea migliore dell'output basato sull'interfaccia utente.

Per utilizzare console su vari contenitori Docker su nodi diversi, possiamo eseguire i seguenti comandi su nodi diversi:

Su Node1

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

Dove, -bootstrap-expect 3 significa che il server console attenderà fino a quando non ci saranno 3 peer connessi prima di eseguire il bootstrap automatico e diventare un cluster funzionante.

Prima di andare oltre, dobbiamo ottenere l'IP interno del contenitore ispezionando il contenitore. Per il nostro utilizzo, scopo del caso, dichiareremo il file$ JOIN_IP.

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

Su Node2

Quindi, iniziamo Node2 e diciamogli di unirsi a Node1 usando la variabile dichiarata nel programma sopra.

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

Su Node3

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

Registratore di edifici per l'individuazione dei servizi

Registrator registra e annulla automaticamente la registrazione dei servizi per qualsiasi container Docker ispezionando i container non appena sono online. Il registratore che stiamo per utilizzare attualmente supporta i registri dei servizi collegabili, che attualmente includonoConsul, Etcd e SkyDNS2. L'utilizzo di Registrator è altamente raccomandato quando si interagisce con diversi servizi sulla rete.

$ docker pull gliderlabs/registrator:latest

L'output sarebbe come mostrato nello screenshot seguente.

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

L'output sarebbe come mostrato nello screenshot seguente.

L'output che hai ricevuto è l'ID del Docker Container che hai appena avviato. È possibile verificare se il contenitore è in esecuzione o meno utilizzando il comando -

$ docker ps -a

L'output sarebbe come mostrato nello screenshot seguente.

È inoltre possibile visualizzare i log di Registrator utilizzando il seguente comando.

$ docker logs registrator

Utilizzando rkt e Nomad

Rkt è un altro servizio basato su container, che puoi utilizzare nel tuo ambiente. È costruito daCoreOS. Il motivo principale per costruire rkt era migliorare la sicurezza che era uno dei problemi di crisi per Docker quando era ancora in fase di sviluppo nel 2013-14.

Per quanto riguarda Console, possiamo utilizzare Rkt Registrator per lavorare sulla scoperta del servizio con Console. Questo particolare progetto Registrator, coperto da rkt, è in fase di sviluppo ed ènot recommended for production level use.

Puoi verificare se rkt è installato o meno, andando sul suo percorso ed eseguendo il seguente comando.

$ ./rkt

È possibile controllare l'output per verificare se è installato correttamente o meno come mostrato nello screenshot seguente.

Per provare rkt e Consul, controlla - https://github.com/r3boot/rkt-registrator.

Strumento nomade

Una delle opzioni più comunemente utilizzate e preferite è lo strumento Nomad. Nomad è uno strumento per la gestione di un cluster di macchine e l'esecuzione di applicazioni su di esse. È simile aMesos o Kubernetes. Per impostazione predefinita, Nomad copre il Docker e il driver rkt al suo interno. Quindi, se stai cercando una distribuzione su larga scala di container con Consul. Nomad potrebbe essere una buona soluzione. Check out -https://www.nomadproject.io/docs/drivers/rkt.html per ulteriori informazioni su Nomad.