紹介
HashiCorpのConsulは、モダンのDevOps環境で多くの機能を提供する柔軟なツールです。それは、サービスの発見、ヘルスチェック、ロードバランシングによく使われ、特に分散型キー-値(KV)ストアとして使われています。ConsulのKVストアは、動的な設定データ、機能フラグ、秘密、メタデータを高可用性、一致性のある方法でインフラ全体上で保存するのに最適であり、分散型システムのサービスに動的にアクセスできます。Dockerを使用してConsulのKVストアを設定することは、迅速な設定と隔離された環境を提供し、テストと開発に理想的です。
このチュートリアルは、Dockerを使用してConsulのKVストアを設定し、構成する手順を説明します。最終的に、Docker上で完全に機能するConsulインスタンスが実行され、KV対が設定され、アクセス可能です。この設定は、分散型システムの動的サービス設定と状態管理に欠かせません。
前提条件
開始する前に、以下を確認してください。
- DigitalOcean Cloudアカウント。
- Ubuntuを実行しているサーバーと、sudo権限を持った非rootユーザー、有効化されたファイアウォール。これらを設定する方法についてのガイドラインは、このリストからあなたのディストリビューションを選択し、初期のサーバー設定ガイドに従ってください。Ubuntuのサポートされているバージョンで作業を行うことを確認してください。
- Ubuntu Droplet上にDockerがインストールされている。UbuntuでDockerのインストールと使用法のチュートリアルに従ってください。
- Linuxのコマンドラインを熟悉している。コマンドラインについての入門やリフレッシュには、Linuxコマンドラインの启蒙を参照してください。
- Dockerコマンドとコンテナ管理の基本知識。
手順 1 — Consul Dockerイメージの取得
今はConsulの公式DockerイメージをDocker Hubから取得しましょう。このイメージはHashiCorpによって保守されており、Consulを実行するために必要なすべてが含まれています。
Ubuntu Dropletのコンソールにログインし、以下のコマンドを実行します。
ステップ2 — Consulコンテナの実行
Consulイメージが下载された後、新しいConsulコンテナを起動することができます。このコンテナはConsulサーバーとして機能し、KVストアとの対話を可能にします。
コンテナを起動するには、以下のコマンドを実行します。
このコマンドは以下のように機能します:
-d
コンテナをデタッチモードで実行します(背景で运行)。--name=consul-server
コンテナに名前を割り当てます。-e CONSUL_BIND_INTERFACE=eth0
Consulが bind するネットワークインターフェースを設定します。これは適切なネットワーク通信のために必要です。-p 8500:8500
Consul Web UIとAPIのポートをホストにマッピングします。-p 8600:8600/udp
サービス発見のためのDNSサービスポートをマッピングします。
このステップは、KVストアを設定するために使用するコアConsulサービスを設定するために非常に重要です。
ステップ3 — Consulのインストールを確認
Consulが正しく実行されていることを確認するために、コンテナの状態を確認し、Consul UIにアクセスする必要があります。
まず、docker ps
コマンドを実行して、すべての运行中のコンテナを一覧表示し、Consul コンテナが运行していることを確認します。
次に、Consul がアクセス可能かどうかを確認します。Webブラウザを開き、http://localhost:8500
に移動します。Consul UIが表示されるはずです。
この確認ステップは、Step 5でKVストアにデータを格納する前に、Consul インスタンスが問題なく运行していることを確認する重要なステップです。
ステップ4 — ファイアウォールの設定(オプション)
外部から(例えばクラスタ内の他のノードから)Consul インスタンスにアクセスする必要がある場合、必要なポートにトラフィックを許可するためにファイアウォールの設定を調整する必要があります。
たとえば、Consulをクラウドインスタンス上で运行させている場合、8500(HTTP API)および8600(DNS)ポートに入りたいトラフィックを許可する必要があるかもしれません。具体的なコマンドは、ファイアウォールソリューション(UFW、iptablesなど)に依存します。
このステップは、他のマシンからConsul インスタンスにアクセスできることを保証し、分散的な設定には不可欠です。
ステップ5 — キー-値ペアの格納
Consulを実行中の場合、KVストアを使用して構成データを保存することができます。Consul CLIまたはWeb UIを使用してキーと値のペアを追加することができます。
CLIを使用してキーと値のペアを保存するには、以下のコマンドを実行します。
このコマンドは以下のようなことを行います。
-it
– 本地端システムからコンテナにインタラクティブなターミナルを起動します。consul kv put
– kv put コマンドは、指定されたパスのKVストアにデータを書き込みます。config/db_host
– 値を保存する場所のパス。192.168.1.100
– 値。
Web UIを使用して、
- Consul UIにアクセスするためには(
http://localhost:8500
)。 - [“Key/Value”]タブをクリックします。新しいキーを作成するために[“Create”]をクリックします。
- キー(例:
config/db_host
)と値(例:192.168.1.100
)を入力します。これらのコマンドとアクションは、サービスが実行中に動的にアクセスできる重要な構成データを保存します。
手順 6 — キーと値のペアを取得する
KVペアを保存した後、正しく保存されたことを確認するために、取得します。
CLIを使用して、以下のコマンドを使用して値を取得します。
Web UIを使用して、
- UIの“Key/Value”タブに移動します。
- 作成したキーを探して、その値を表示するにはそれをクリックします。
KVペアを取得することは、データが正しく格納されていることと、アクセス可能であることを確認する必要のある手顺です。
手順 7 — Docker ボリュームを使用してデータの持続性
デフォルトでは、Docker コンテナは一時的なものであり、コンテナを削除すると内部に格納されているデータが失われます。Consul KV データを持続性を保つためには、Docker ボリュームを使用する必要があります。
- 現在の Consul コンテナを停止して削除します。
今度は、コンテナを確認して、Consul コンテナがもはや稼動していないことに気づきます。
2.Docker ボリュームを接続した新しい Consul コンテナを実行します。
`-v consul_data:/consul/data` オプションは、Docker ボリュームをコンテナにマウントし、KV ストアがコンテナの再起動を通して持続性を保つようにします。
手順 8 — Consul 起動の自動化(オプション)
プロダクション環境でのデプロイメントの場合、Docker Composeを使用してConsulコンテナの起動を自動化することが望まれるかもしれません。Docker ComposeはマルチコンテナのDockerアプリケーションを簡素化し、サービスの管理を容易にします。
以下の内容でdocker-compose.yml
ファイルを作成してください。
次に、以下のコマンドを実行します。
このコマンドはConsulを自動的に起動し、失敗した場合に再起動することで、プロダクション用途においてより強固なものとなります。
手順 9 — 環境の掃除
Consulインスタンスを使用した後、Docker環境を掃除してリソースを解放する必要があります。
Consulコンテナを停止して削除しましょう。
Consulの使用を終えた場合、Dockerイメージも削除することができます。
環境を掃除することは、開発環境を整潔に保ち、Dockerのリソースが不要に消費されてしまわないようにする役割があります。
結論
このチュートリアルで、Dockerを使用してConsulのKVストアを設定して構築した方法を学びました。Dockerのインストール、Consulコンテナの実行、KVストアの設定、Dockerボリュームを使用したデータの持続性、および環境の掃除をカバーしました。これらの手順を通じて、Consulを使用して分散型システム内の設定データを動的に管理することができます。Dockerを利用して簡単なデプロイや管理を行います。
Source:
https://www.digitalocean.com/community/tutorials/how-to-configure-consul-kv-using-docker