Konsul - Bekerja dengan Layanan Mikro

Pada bab ini, kita akan memahami bagaimana Microservices bekerja dengan Konsul. Kami juga akan mempelajari bagaimana komponen berikut mempengaruhi Konsul.

  • Menggunakan buruh pelabuhan
  • Membangun Registrator untuk Penemuan Layanan
  • Menggunakan rkt dan Nomad

Sekarang mari kita bahas masing-masing secara mendetail.

Menggunakan Docker

Sebelum memulai, please do not use this setup in productionkarena digunakan untuk tujuan demo saja. Docker adalah layanan berbasis kontainer yang dengannya kita dapat dengan mudah menerapkan aplikasi kita. Untuk menggunakan Konsul, kita akan menggunakan gambar di link berikut –0

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

Diasumsikan bahwa sistem Anda telah menginstal Docker dan dikonfigurasi dengan benar. Mari kita coba tarik gambar dari hub Docker, dengan menjalankan perintah berikut -

$ docker pull progrium/consul

Outputnya akan seperti yang ditunjukkan pada tangkapan layar berikut.

Kami akan menerbitkan beberapa antarmuka dengan port mereka (menggunakan opsi -p di Docker) dengan cara berikut.

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

Juga sesuai dengan penarikan yang dilakukan, kita akan menetapkan nama hostname sebagai node1.Anda dapat mengubahnya menjadi apa pun yang Anda inginkan dengan menggunakan -h flag dengan beberapa nama host Anda sendiri seperti yang ditunjukkan di bawah ini.

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

Outputnya akan seperti yang ditunjukkan pada tangkapan layar berikut.

Anda juga dapat mengaktifkan mode UI untuk Konsul menggunakan -

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

Anda dapat memeriksa keluaran berbasis UI http://localhost:8500. Tangkapan layar berikut memberi Anda gambaran yang lebih baik tentang keluaran berbasis UI.

Untuk menggunakan konsul di berbagai kontainer buruh pelabuhan di node yang berbeda, kita dapat menjalankan perintah berikut di node yang berbeda -

Di Node1

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

Dimana, -bootstrap-expect 3 artinya server konsul akan menunggu hingga ada 3 rekan yang terhubung sebelum melakukan bootstrap sendiri dan menjadi cluster yang berfungsi.

Sebelum melangkah lebih jauh, kita perlu mendapatkan IP internal penampung dengan memeriksa penampung. Untuk penggunaan kami, tujuan kasus, kami akan mendeklarasikan$ JOIN_IP.

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

Di Node2

Jadi, mari kita mulai Node2 dan beri tahu untuk bergabung dengan Node1 menggunakan variabel yang dideklarasikan dalam program yang diberikan di atas.

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

Di Node3

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

Membangun Registrator untuk Penemuan Layanan

Registrator secara otomatis mendaftarkan dan membatalkan pendaftaran layanan untuk kontainer Docker apa pun dengan memeriksa kontainer saat mereka online. Registrator yang akan kami gunakan saat ini mendukung registri layanan yang dapat dicolokkan, yang saat ini termasukConsul, Etcd dan SkyDNS2. Penggunaan Registrator sangat disarankan saat kami berinteraksi dengan berbagai layanan melalui jaringan.

$ docker pull gliderlabs/registrator:latest

Outputnya akan seperti yang ditunjukkan pada tangkapan layar berikut.

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

Outputnya akan seperti yang ditunjukkan pada tangkapan layar berikut.

Output yang Anda terima adalah ID dari Docker Container yang baru saja Anda mulai. Anda dapat memeriksa apakah penampung sedang berjalan atau tidak dengan menggunakan perintah -

$ docker ps -a

Outputnya akan seperti yang ditunjukkan pada gambar berikut.

Anda juga dapat melihat log Registrator dengan menggunakan perintah berikut.

$ docker logs registrator

Menggunakan rkt dan Nomad

Rkt adalah layanan berbasis kontainer lain, yang dapat Anda gunakan di lingkungan Anda. Itu dibangun olehCoreOS. Alasan utama membangun rkt adalah untuk meningkatkan keamanan yang merupakan salah satu masalah krisis bagi Docker saat masih dalam pengembangan pada 2013-14.

Sedangkan untuk Konsul, kita dapat menggunakan Registrator Rkt untuk mengerjakan penemuan layanan dengan Konsul. Proyek Registrator khusus ini, yang tercakup untuk rkt, sedang dalam pengembangan dan sedangnot recommended for production level use.

Anda dapat memeriksa apakah rkt diinstal atau tidak, dengan masuk ke jalurnya dan menjalankan perintah berikut.

$ ./rkt

Anda dapat memeriksa output untuk memeriksa, apakah sudah terpasang dengan benar atau tidak seperti yang ditunjukkan pada tangkapan layar berikut.

Untuk mencoba rkt dan Konsul, silakan lihat - https://github.com/r3boot/rkt-registrator.

Alat Nomad

Salah satu yang paling umum digunakan dan pilihan favorit adalah alat Nomad. Nomad adalah alat untuk mengelola sekumpulan mesin dan menjalankan aplikasi di dalamnya. Ini mirip denganMesos atau Kubernetes. Secara default, Nomad mencakup driver Docker dan rkt di dalamnya. Jadi, jika Anda mencari penyebaran kontainer skala besar dengan Konsul. Nomad mungkin solusi yang bagus untuk itu. Lihat -https://www.nomadproject.io/docs/drivers/rkt.html untuk informasi lebih lanjut tentang Nomad.