Consul-working-with-microservices

提供:Dev Guides
移動先:案内検索

領事-マイクロサービスの使用

この章では、MicroservicesがConsulと連携する方法を理解します。 また、次のコンポーネントがConsulに与える影響についても学習します。

  • ドッカーを使用する
  • サービス発見のための登録者の構築
  • rktとNomadを使用する

次に、これらのそれぞれについて詳しく説明します。

Dockerを使用する

開始する前に、*このセットアップは実稼働では使用しないでください*デモ目的でのみ使用されます。 Dockerはコンテナベースのサービスであり、これを使用してアプリケーションを簡単にデプロイできます。 Consulを使用するには、次のリンクの画像を使用します–0

[[1]]

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

$ docker pull progrium/consul

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

プルプログラム

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

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

また、プルごとに、ホスト名の名前を node1 に設定します。以下に示すように、独自のホスト名で* -hフラグ*を使用して、任意の名前に変更できます。

$ 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
*http://localhost:8500* でUIベースの出力を確認できます。 次のスクリーンショットは、UIベースの出力に関するより良いアイデアを提供します。

UIベース

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

Node1で

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

ここで、*-bootstrap-expect 3 *は、3つのピアが接続されるまでconsulサーバーが待機してから、自己ブートストラップして作業クラスターになることを意味します。

先に進む前に、コンテナを検査してコンテナの内部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

サービス発見のための登録者の構築

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

$ docker pull gliderlabs/registrator:latest

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

gliderlabs

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

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

gliderlabs

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

$ docker ps -a

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

docker ps

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

$ docker logs registrator

rktとNomadを使用する

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

Consulについては、Rkt Registratorを使用して、Consulでのサービス検出に取り組んでいます。 rktの対象となるこの特定の登録者プロジェクトは開発中であり、生産レベルでの使用にはお勧めできません

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

$ ./rkt

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

Rkt登録者

rktとConsulを試すには、https://github.com/r3boot/rkt-registratorをチェックしてください。

ノマドツール

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