領事-マイクロサービスとの連携

この章では、マイクロサービスがConsulとどのように連携するかを理解します。また、次のコンポーネントが領事にどのように影響するかについても学びます。

  • Dockerの使用
  • サービスディスカバリ用のBuildingRegistrator
  • rktとNomadの使用

これらのそれぞれについて詳しく説明しましょう。

Dockerの使用

始める前に、 please do not use this setup in productionデモ目的でのみ使用されるため。Dockerは、アプリケーションを簡単にデプロイできるコンテナベースのサービスです。領事を使用するには、次のリンク–0の画像を使用します。

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

システムにDockerがインストールされ、適切に構成されていることを前提としています。次のコマンドを実行して、Dockerハブからイメージをプルダウンしてみましょう-

$ docker pull progrium/consul

出力は、次のスクリーンショットに示すようになります。

次の方法で、ポートを使用していくつかのインターフェイスを公開します(Dockerの-pオプションを使用)。

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

また、行われたプルに従って、ホスト名の名前を次のように設定します。 node1。を使用して、好きなように変更できます。 -h flag 以下に示すように、独自のホスト名を使用します。

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

出力は、次のスクリーンショットに示すようになります。

−を使用して領事のUIモードを有効にすることもできます。

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

UIベースの出力を確認できます http://localhost:8500。次のスクリーンショットは、UIベースの出力に関するより良いアイデアを示しています。

さまざまなノードのさまざまなDockerコンテナでconsulを使用するために、さまざまなノードで次のコマンドを実行できます-

Node1で

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

どこ、 -bootstrap-expect 3 これは、領事サーバーが3つのピアが接続されるまで待機してから、セルフブートストラップして動作するクラスターになることを意味します。

先に進む前に、コンテナを検査してコンテナの内部IPを取得する必要があります。私たちの使用、ケースの目的のために、私たちは宣言するつもりです$ JOIN_IP

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

Node2で

それでは、Node2を起動し、上記のプログラムで宣言された変数を使用してNode1に参加するように指示しましょう。

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

Node3で

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

サービスディスカバリ用のBuildingRegistrator

レジスターは、コンテナーがオンラインになったときにコンテナーを検査することにより、Dockerコンテナーのサービスを自動的に登録および登録解除します。これから使用するレジストラは、現在、プラグイン可能なサービスレジストリをサポートしています。Consul, Etcd そして SkyDNS2。ネットワークを介してさまざまなサービスとやり取りする場合は、Registratorを使用することを強くお勧めします。

$ docker pull gliderlabs/registrator:latest

出力は、次のスクリーンショットに示すようになります。

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

出力は、次のスクリーンショットに示すようになります。

受け取った出力は、開始したばかりのDockerコンテナのIDです。コマンド-を使用して、コンテナが実行されているかどうかを確認できます。

$ docker ps -a

次のスクリーンショットに示すように、出力は次のようになります。

次のコマンドを使用して、登録者のログを表示することもできます。

$ docker logs registrator

rktとNomadの使用

rktは、環境で使用できるもう1つのコンテナベースのサービスです。それはによって構築されていますCoreOS。rktを構築する主な理由は、2013-14年にまだ開発中であったDockerの危機的な問題の1つであったセキュリティを改善することでした。

領事に関しては、領事とのサービス検出に取り組むためにRktRegistratorを使用できます。rktの対象となるこの特定の登録者プロジェクトは開発中であり、not recommended for production level use

rktがインストールされているかどうかは、そのパスに移動して次のコマンドを実行することで確認できます。

$ ./rkt

次のスクリーンショットに示すように、出力をチェックして、正しくインストールされているかどうかを確認できます。

rktと領事を試すためにチェックしてください- https://github.com/r3boot/rkt-registrator。

遊牧民ツール

最も一般的に使用され、お気に入りのオプションの1つは、Nomadツールです。Nomadは、マシンのクラスターを管理し、それらでアプリケーションを実行するためのツールです。に似ていますMesos または Kubernetes。デフォルトでは、NomadはDockerとrktドライバーをカバーしています。したがって、Consulを使用してコンテナの大規模な展開を探している場合。遊牧民はそれに対する良い解決策かもしれません。チェックアウト-https://www.nomadproject.io/docs/drivers/rkt.html Nomadの詳細については。