私は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 によるものです。それで、これを防ぐことは可能ですか?リンクと環境変数について読みましたが、これらの変数も再起動後に更新されないようです。