ホームページ > 運用・保守 > Docker > Docker を使用して Consul KV を構成する方法

Docker を使用して Consul KV を構成する方法

Jennifer Aniston
リリース: 2025-01-10 16:31:35
転載
228 人が閲覧しました

HashiCorp の Consul は、複数の機能を提供する多用途ツールです 最新の DevOps 環境で。サービスの発見に広く使用されています。 ヘルスチェック、ロードバランシング、そして特に分散キーバリューとして (KV)ストア。 Consul の KV ストアは動的保存に最適です 構成データ、機能フラグ、シークレット、およびメタデータを高度なレベルで管理します。 インフラストラクチャ全体で一貫した方法で利用できるため、 分散システム内のサービスによって動的にアクセスされる可能性があります。使用する Consul の KV ストアを構成する Docker により、迅速なセットアップと 隔離された環境なので、テストと開発に最適です。

このチュートリアルでは、セットアップと開発のプロセスについて説明します。 Docker を使用して Consul の KV ストアを構成します。最後には、 KV ペアを使用して Docker で実行される完全に機能する Consul インスタンス 設定済みでアクセス可能です。この設定は動的サービスに不可欠です

ステップ 1 — Consul Docker イメージをプルする

Docker Hub から公式の Consul イメージをプルしましょう。この画像は HashiCorp によって保守されており、Consul を実行するために必要なものがすべて含まれています。

Ubuntu Droplet のコンソールにログインし、実行:

docker pull hashicorp/consul:latest
ログイン後にコピー
Outputlatest: Pulling from hashicorp/consul
c8bcd218a73d: Pull complete 
5f1ac8227c2a: Pull complete 
c51fd79d429a: Pull complete 
91eff479bde6: Pull complete 
4dfcc18e51db: Pull complete 
3e2a8bf39bf9: Pull complete 
bd9ddc54bea9: Pull complete 
2054d291fb84: Pull complete 
Digest: sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb
Status: Downloaded newer image for hashicorp/consul:latest
docker.io/hashicorp/consul:latest
ログイン後にコピー

ステップ2 — Consul コンテナの実行

Consul イメージがダウンロードされたので、新しい Consul を開始できます 容器。このコンテナは Consul サーバーとして機能し、 KV ストアと対話できるようになります。

コンテナを起動するには、実行:

docker run -d --name=consul-server -e
ログイン後にコピー
ログイン後にコピー
OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp hashicorp/consul
c893b6707686bce8434213975a75c936b834cf25fc84d10b407a11c4fa8ca8ba
ログイン後にコピー

はこちらこのコマンドの動作:

  • -d はコンテナーを分離モード (バックグラウンド) で実行します。
  • --name=consul-server はコンテナーに名前を割り当てます。
  • -e CONSUL_BIND_INTERFACE=eth0 は、Consul がバインドするネットワーク インターフェイスを設定します。これは適切なネットワーク通信に必要です。
  • -p 8500:8500 は、Consul Web UI と API ポートをホストにマップします。
  • -p 8600:8600/udp は、DNS サービス ポートをマップします。サービス検出。

このステップは、コア Consul サービスを設定するため重要です。 KV ストアの設定に使用します。

ステップ 3 — Consul のインストールの確認

Consul が正しく実行されていることを確認するには、コンテナのステータスを確認し、Consul UI にアクセスする必要があります。

まず、docker ps を実行して実行中のコンテナをすべてリストし、Consul コンテナが

❯ docker ps                                                                                                      CONTAINER ID   IMAGE              COMMAND                  CREATED          STATUS          PORTS                                                                                    NAMES
c893b6707686   hashicorp/consul   "docker-entrypoint.s…"   51 seconds ago   Up 50 seconds   8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp   consul-server
ログイン後にコピー

次に、Consul がアクセス可能かどうかを確認し、Web ブラウザを開いて、 http://localhost:8500. に移動すると、Consul UI が表示されます。

これ検証ステップは、領事が次のことを行っていることを確認するために重要です。 データを KV に保存する前はインスタンスが問題なく実行されている store (ステップ 5).

ステップ 4 — ファイアウォールの構成 (オプション)

Consul インスタンスに外部からアクセスする必要がある場合 (例: クラスター内の他のノード)、ファイアウォール設定を次のように調整する必要があります。 必要なポートでトラフィックを許可します。

たとえば、クラウド インスタンスで Consul を実行している場合、次のようにすることができます。 ポート 8500 (HTTP API) および 8600 (DNS) での受信トラフィックを許可する必要があります。 特定のコマンドは、ファイアウォール ソリューション (UFW、

このステップにより、Consul インスタンスが他のインスタンスからアクセスできるようになります。

ステップ 5 — キーと値のペアの保存

Consul を実行すると、KV ストアを使用してキーと値のペアを保存できるようになります。 構成データ。 Consul CLI を使用してキーと値のペアを追加するか、 Web UI。

CLI 経由でキーと値のペアを保存するには、実行:

docker exec -it consul-server consul kv put config/db_host 
192.168.1.100
Success! Data written to: config/db_host
ログイン後にコピー
docker exec -it consul-server consul kv put config/db_port 3306         Success! Data written to: config/db_port
ログイン後にコピー

はこちらこのコマンドの動作:

  • -it - ローカル システムからコンテナへの対話型ターミナルを起動します。
  • consul kv put - kv put コマンドは、指定されたパス KV にデータを書き込みます。 store.
  • config/db_host - を保存するパスvalue.
  • 192.168.1.100 - Value.

Web UI を使用して、

  1. Consul UI に移動します (http://localhost:8500).
  2. 「キー/値」をクリックします
  3. 「作成」をクリックして新しいキーを作成します。
  4. キー (例: config/db_host) と値 (例: 192.168.1.100) を入力します。

これらのコマンドとアクションは、サービスが動的にアクセスできる重要な構成データを保存します。 runtime.

ステップ 6 — キーと値のペアの取得

いくつかの KV ペアを保存したら、それらを取得して正しく保存されていることを確認します。

CLI を使用して、次のように値を取得します。コマンド:

docker exec -it consul-server consul kv get config/db_host     
192.168.1.100
ログイン後にコピー

Web UI を使用して、

  1. Go Consul の「Key/Value」タブへUI。
  2. 作成したキーを見つけてクリックし、保存されている値を確認します。

Web GUI

KV ペアの取得は、次の目的に必要な手順です。データが正しく保存され、アクセスできることを確認します。

ステップ 7 — Docker を使用したデータの永続化ボリューム

デフォルトでは、Docker コンテナは一時的です。つまり、あらゆるデータが コンテナが取り外されると、その中に保存されているデータは失われます。持続するために Consul KV データを使用するには、Docker ボリュームを使用する必要があります。

  1. 現在の Consul を停止して削除しますコンテナ:
docker stop consul-server 
docker rm consul-server
ログイン後にコピー

さて、コンテナを確認すると、Consul コンテナが含まれていないことがわかります。走っている

docker ps CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
ログイン後にコピー

2. Docker ボリュームを使用して新しい Consul コンテナを実行します添付:

docker run -d --name=consul-server -e
ログイン後にコピー
ログイン後にコピー
OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp -v consul_data:/consul/data hashicorp/consul
2d2a7d3ff1911c2283e70506d68391a5cbf9c935a2ae447bfb8fa21481989ef1
ログイン後にコピー
docker ps
ログイン後にコピー
ログイン後にコピー
OutputCONTAINER ID   IMAGE              COMMAND                  CREATED         STATUS         PORTS                                                                                    NAMES
2d2a7d3ff191   hashicorp/consul   "docker-entrypoint.s…"   5 seconds ago   Up 4 seconds   8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp   consul-server
ログイン後にコピー

-v consul_data:/consul/data オプションは、Docker ボリュームをコンテナにマウントし、コンテナの再起動後も KV ストアが保持されるようにします。

ステップ 8 — Consul の起動を自動化する (オプション)

運用環境の場合デプロイメントの場合、起動を自動化することもできます。 Docker Compose を使用して Consul コンテナを作成します。 Docker Compose による簡素化 マルチコンテナの Docker アプリケーションを使用できるようになり、管理が容易になります services.

次の内容を含む docker-compose.yml ファイルを作成します:

docker-compose,yml
services:
  consul:
    image: hashicorp/consul:latest    environment:
      - CONSUL_BIND_INTERFACE=eth0    volumes:
      - consul_data:/consul/data 
    ports:
      - "8500:8500"
      - "8600:8600/udp"
    restart: alwaysvolumes:
  consul_data:
ログイン後にコピー

それでは、実行:

docker-compose up -d
ログイン後にコピー
Output[ ] Running 2/2
 ✔ Network work_default     Created                                                                                                           0.0s 
 ✔ Container consul-server  Started                                                                                                           0.1s
ログイン後にコピー
docker ps
ログイン後にコピー
ログイン後にコピー
OutputWARN[0000] /Users/anandhkumar/work/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion 
NAME            IMAGE                     COMMAND                  SERVICE   CREATED          STATUS          PORTS
work-consul-1   hashicorp/consul:latest   "docker-entrypoint.s…"   consul    40 seconds ago   Up 11 seconds   8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp
ログイン後にコピー

これコマンドは Consul を自動的に起動し、失敗した場合には確実に再起動するため、運用環境での使用に対してより堅牢になります。

ステップ 9 — クリーンアップ

Consul インスタンスの操作が終了したら、次のことを行う必要があります。 Docker 環境をクリーンアップしてリソースを解放してください。

Consul を停止して削除しましょうコンテナ:

docker stop consul-server   
docker rm consul-serverdocker ps
ログイン後にコピー
outputCONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
ログイン後にコピー

の場合Consul は完了です。Docker を削除することもできます画像:

docker rmi hashicorp/consul
ログイン後にコピー
outputhashicorp/consul@sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb
Deleted: sha256:eff8ccb509560987755a70df8d6c0b9410538d503d99498ae1ea9f48066b0439
Deleted: sha256:b5e6402bbb78eb061d538505a30300ef7f612104eaf0f11b17839a9b29bc5603
Deleted: sha256:1c61ada2ad8074615120d13bd805260d766ae8424cafbda4bded529d6a204d6f
Deleted: sha256:9b36da670e2a59f1d81c6e3c9d55906c576b384df51272977e5a9caea7131e74
Deleted: sha256:8c6e52c441c246f60ca146b71204b7d6511df75fa87a0dc0a0f91141964e8fd9
Deleted: sha256:1fce18208235de2be3c419764ec1d469229af5387447d21649c841632c653cef
Deleted: sha256:68e0a114c9c35b9aa8cac31fa32b27f886361bc85fcc63f34e882e9128f33a14
Deleted: sha256:3da5b888208a9b19694bfeaf8c74a432b50f44542d717c9e1f3ab273e505855a
Deleted: sha256:dea73e9287e6e2f3b7f9fcac4f20767d7badeefa24e52f990f1674e98abfa1a3
Deleted: sha256:201fa22d1f4c7d6e7ec43135c63b2260f303f4864f5eb43569faaa1731628799
ログイン後にコピー

クリーニングup は、整然とした開発環境を維持し、Docker リソースが不必要に消費されないようにするのに役立ちます。

以上がDocker を使用して Consul KV を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:digitalocean.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート