問題タブ [consul]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - Consul を使用した Docker のコンテナー通信
Consul を使用した Docker のサービス ディスカバリについて読んだことがありますが、理解できません。
2 つの docker コンテナを実行し、Consul を使用して最初のコンテナ ホストから 2 番目のコンテナ ホストを認識し、メッセージを送信するにはどうすればよいですか?
amazon-ec2 - 領事クラスターは頻繁に「失敗」しました
私は領事に不慣れで、現在それを試しています。この記事に従ってクラスターをセットアップしました: https://www.digitalocean.com/community/tutorials/an-introduction-to-using-consul-a-service-discovery-system-on-ubuntu-14-04 allエージェントは「サーバー」モードです。ただし、このクラスターはかなり不安定です。サーバーで「exec consul members」コマンドを入力すると、他の多くのサーバーが「失敗」状態になっていることが常にわかります (それらのサーバーは生きて回復することもありますが、すぐに再び失敗します)。おそらく、構成ファイルの作成にはいくつかのトリックがあると思います。
AWS EC2 インスタンスを使用して、これらの領事エージェントを実行しています。
ありがとう!ヨリック
consul - タグで返された consul.io サービスをフィルタリングする
サービス領事がタグを使用して私に返すサービスをフィルタリングする方法があるかどうか疑問に思っていました。
エンドポイント:
サービスのマップをタグのリストに返し、返された後にサービスを解析する必要があります。
必要なタグ (またはタグ) をクエリ パラメーターとしてエンドポイントに渡し、既にフィルター処理されたマップを取得する方法があるかどうか疑問に思っていました。
service - Consul Registrator の使用時に ServiceAddress が空である
これは、Consul サービス API (/v1/catalog/service/service1) を照会して取得したものです。
レジストレーターとサービスを開始するために使用したコマンド:
私が間違っている手順はありますか?ホスト名を ServiceAddress フィールドにどのように割り当てますか?
docker - 再起動後、単一ノードの Docker 化された Consul クラスターに IP を保持するにはどうすればよいですか?
私はDockerとConsulを初めて使用し、現在3つのDocker化されたノードで構成されるローカルConsulクラスターをセットアップしようとしています. 私はprogrium/consul
Docker イメージを使用しており、説明されているチュートリアルと例全体を確認しました。
再起動/再起動するまで、クラスターは正常に動作します。
これが私のものdocker-compose.yml
です:
---
node1:
command: "-server -bootstrap-expect 3 -ui-dir /ui -advertise 10.67.203.217"
image: progrium/consul
ports:
- "10.67.203.217:8300:8300"
- "10.67.203.217:8400:8400"
- "10.67.203.217:8500:8500"
- "10.67.203.217:8301:8301"
- "10.67.203.217:8302:8302"
- "10.67.203.217:8301:8301/udp"
- "10.67.203.217:8302:8302/udp"
- "172.17.42.1:53:53/udp"
restart: always
node2:
command: "-server -join 10.67.203.217"
image: progrium/consul
restart: always
node3:
command: "-server -join 10.67.203.217"
image: progrium/consul
restart: always
registrator:
command: "consul://10.67.203.217:8500"
image: "progrium/registrator:latest"
restart: always
次のようなメッセージが表示されます。
[ERR] raft: Failed to make RequestVote RPC to 172.17.0.103:8300: dial tcp 172.17.0.103:8300: no route to host
これは明らかに、再起動後にノード 2 と 3 が取得する新しい IP によるものです。それで、これを防ぐことは可能ですか?リンクと環境変数について読みましたが、これらの変数も再起動後に更新されないようです。
consul - Consul のサービスでカスタム フィールドがサポートされていないのはなぜですか?
特定のサービスに関する追加のメタデータを保存すると便利な状況がいくつか見つかりましたが、サービス APIではカスタム フィールドがサポートされていないようです(基本的な ID、名前、アドレス、ポートのみ)。たとえば、データベース名やロード バランサーの重み付けなどです。
私は設計上の決定について興味があります - これが伝道するベストプラクティスはありますか、それともおそらくこれは将来の機能強化ですか?
追加情報として KV ストアを使用できることは理解していますが、複数の Consul ルックアップを行わずに、同様の情報をまとめた方が便利なようです。