領事-マイクロサービスとの連携
この章では、マイクロサービスが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の詳細については。