Докер консул кластер без роя - PullRequest
0 голосов
/ 14 ноября 2018

Из-за ограничений компании я не могу использовать 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"
...