Consul-working-with-microservices
領事-マイクロサービスの使用
この章では、MicroservicesがConsulと連携する方法を理解します。 また、次のコンポーネントがConsulに与える影響についても学習します。
- ドッカーを使用する
- サービス発見のための登録者の構築
- rktとNomadを使用する
次に、これらのそれぞれについて詳しく説明します。
Dockerを使用する
開始する前に、*このセットアップは実稼働では使用しないでください*デモ目的でのみ使用されます。 Dockerはコンテナベースのサービスであり、これを使用してアプリケーションを簡単にデプロイできます。 Consulを使用するには、次のリンクの画像を使用します–0
[[1]]
システムにDockerがインストールされ、適切に構成されていることを前提としています。 次のコマンドを実行して、Dockerハブからイメージをプルダウンしてみます-
出力は、次のスクリーンショットのようになります。
次の方法で、ポートを使用していくつかのインターフェイスを公開します(Dockerの-pオプションを使用)。
- 8400(RPC)
- 8500(HTTP)
- 8600(DNS)
また、プルごとに、ホスト名の名前を node1 に設定します。以下に示すように、独自のホスト名で* -hフラグ*を使用して、任意の名前に変更できます。
出力は、次のスクリーンショットのようになります。
また、を使用して領事のUIモードを有効にすることができます-
異なるノード上のさまざまなdockerコンテナでconsulを使用するために、異なるノードで次のコマンドを実行できます-
Node1で
ここで、*-bootstrap-expect 3 *は、3つのピアが接続されるまでconsulサーバーが待機してから、自己ブートストラップして作業クラスターになることを意味します。
先に進む前に、コンテナを検査してコンテナの内部IPを取得する必要があります。 ケースの目的で使用するために、 $ JOIN_IP を宣言します。
Node2で
したがって、Node2を起動し、上記のプログラムで宣言された変数を使用してNode1に参加するように指示しましょう。
Node3で
サービス発見のための登録者の構築
登録者は、コンテナがオンラインになると検査することにより、Dockerコンテナのサービスを自動的に登録および登録解除します。 現在使用する登録者は、現在 Consul、Etcd 、および SkyDNS2 を含むプラグ可能なサービスレジストリをサポートしています。 ネットワークを介してさまざまなサービスとやり取りする場合は、Registratorの使用を強くお勧めします。
出力は、次のスクリーンショットのようになります。
出力は、次のスクリーンショットのようになります。
受け取った出力は、開始したばかりのDockerコンテナーのIDです。 コマンドを使用して、コンテナが実行されているかどうかを確認できます-
出力は次のスクリーンショットのようになります。
次のコマンドを使用して、登録者のログを表示することもできます。
rktとNomadを使用する
rktは別のコンテナベースのサービスであり、環境で使用できます。 CoreOS によって構築されます。 rktを構築する主な理由は、2013-14年にまだ開発中だったDockerの危機的な問題の1つであったセキュリティを改善するためです。
Consulについては、Rkt Registratorを使用して、Consulでのサービス検出に取り組んでいます。 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を確認してください。