Я новичок в Docker и Consul и сейчас пытаюсь настроить локальный кластер Consul, состоящий из 3 докеризированных узлов. Я использую образ 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
что, очевидно, связано с новым IP-адресом, который мои узлы 2 и 3 получают после перезапуска. Так можно ли это предотвратить? Прочтите о связывании и переменных среды, но кажется, что эти переменные также не обновляются после перезагрузки.