Из-за ограничений компании я не могу использовать docker-swarm, поэтому я пытаюсь настроить консольный кластер на нескольких машинах, использующих одну и ту же хост-сеть, давайте представим, что это адреса трех машин (я использую virtualbox с docker-machine длятестирование), эти IP известны как HOST_IP
своими контейнерами:
- дм1 : 192.168.99.100
- дм2 : 192.168.99.101
- дм3 : 192.168.99.102
CONSUL_BOOTSTRAP_IP
- главный сервер начальной загрузки консула 192.168.99.100
.
Эта настройка работает(Я установил и запустил 3 узла в веб-интерфейсе), но в контейнерах я вижу несколько странных журналов:
consul-server_1_46f1167db7a9 | 2018/11/14 08:06:48 [WARN] consul: error getting server health from "64bbf570ff39": rpc error getting client: failed to get conn: dial tcp <nil>->172.18.0.2:8300: connect: no route to host
consul-server_1_46f1167db7a9 | 2018/11/14 08:06:50 [WARN] consul: error getting server health from "64bbf570ff39": context deadline exceeded
consul-server_1_46f1167db7a9 | 2018/11/14 08:06:51 [WARN] consul: error getting server health from "64bbf570ff39": rpc error getting client: failed to get conn: dial tcp <nil>->172.18.0.2:8300: connect: no route to host
consul-server_1_46f1167db7a9 | 2018/11/14 08:06:52 [WARN] consul: error getting server health from "64bbf570ff39": context deadline exceeded
consul-server_1_46f1167db7a9 | 2018/11/14 08:06:53 [WARN] consul: error getting server health from "64bbf570ff39": last request still outstanding
consul-server_1_46f1167db7a9 | 2018/11/14 08:06:54 [WARN] consul: error getting server health from "64bbf570ff39": rpc error getting client: failed to get conn: dial tcp <nil>->172.18.0.2:8300: connect: no route to host
Почему консул пытается получить доступ к внутреннему IP-адресу контейнера докера 172.18.0.*
вместо использованияадрес -advertise
?Это раздражает, и в пользовательском интерфейсе я вижу, что некоторые призрачные узлы появляются и исчезают со статусом ошибки.
Вот мои файлы составления:
dm1
version: '2'
services:
consul-server:
image: consul:latest
networks:
- back
command:
agent
-node consul-01
-server
-client 0.0.0.0
-bootstrap-expect 3
-ui
-advertise ${HOST_IP}
ports:
- "8300:8300"
- "8301:8301"
- "8301:8301/udp"
- "8302:8302"
- "8302:8302/udp"
- "8400:8400"
- "8500:8500"
- "8600:8600"
- "8600:53/udp"
дм2
version: '2'
services:
consul-server:
image: consul:latest
networks:
- back
command:
agent
-node consul-02
-server
-client 0.0.0.0
-bootstrap-expect 3
-retry-join ${CONSUL_BOOTSTRAP_IP}
-advertise ${HOST_IP}
ports:
- "8300:8300"
- "8301:8301"
- "8301:8301/udp"
- "8302:8302"
- "8302:8302/udp"
- "8400:8400"
- "8500:8500"
- "8600:8600"
- "8600:53/udp"
дм3
version: '2'
services:
consul-server:
image: consul:latest
networks:
- back
command:
agent
-node consul-03
-server
-client 0.0.0.0
-bootstrap-expect 3
-retry-join ${CONSUL_BOOTSTRAP_IP}
-advertise ${HOST_IP}
ports:
- "8300:8300"
- "8301:8301"
- "8301:8301/udp"
- "8302:8302"
- "8302:8302/udp"
- "8400:8400"
- "8500:8500"
- "8600:8600"
- "8600:53/udp"