Комбинация консул / кочевник - как проверка работоспособности консула разрешает IP-адрес своего хоста

У меня есть настройка с кочевником и консулом на моем компьютере.
Я запускаю службу с работой кочевника, и она успешно зарегистрирована.
Моя проблема связана с разрешением IP:
- в пользовательском интерфейсе Nomad я вижу IP 10.0.75.1
- в пользовательском интерфейсе Consul при обнаружении служб я вижу IP 10.0.75.1
- в consul healthcheck используемый IP это другой 172.31.194.209

Оба IP-адреса являются хорошими IP-адресами хоста, но моя проблема заключается в том, что служба отвечает только на 10.0.75.1.

Моя точка зрения на самом деле не в том, чтобы эта служба работала, поскольку я мог бы обойти проблему, установив другую конфигурацию для ответа на 171.31.194.209.

Я бы хотел понять, как проверка работоспособности консула разрешает IP-адрес своего хоста, а в моем случае - другой, чем пользовательские интерфейсы Nomad / Consul. Также был бы отличный способ заставить это разрешение.

Обратите внимание, что проверка работоспособности настраивается Nomad с помощью network_mode = host.

Некоторые конфигурации:
КОНСУЛ

{
  "ui":  true,
  "data_dir":  "C:\\Users\\foo\\consul\\data",
  "client_addr":  "10.0.75.1",
  "node_name":  "foonode",
  "server":  true,
  "bind_addr":  "10.0.75.1",
  "ports":  {
              "http":  8500
          },
  "bootstrap":  true,
  "bootstrap_expect":  1,
  "datacenter":  "local",
  "node_meta":  {
                  "user":  "foo"
              }
}

NOMAD

name = "foonode"
bind_addr = "10.0.75.1"
datacenter = "local"
data_dir = "C:\\Users\\foo\\nomad\\data"
server {
    enabled = true
    bootstrap_expect = 1
}
client {
    enabled = true
    options {
        "driver.raw_exec.enable" = "1"
    }
    meta {
        user = "foo"
    }
}
consul {
    address = "http://10.0.75.1:8500"
}

person Thibault Deheurles    schedule 08.01.2018    source источник
comment
Consul использует IP-адрес, назначенный этому контейнеру Docker, вы найдете его в среде вашего запущенного контейнера в переменной NOMAD_IP_foo, где foo - это имя, которое вы присвоили порту задачи.   -  person Joachim de Groot    schedule 03.03.2018


Ответы (1)


Просто догадываюсь, но у вашей машины несколько IP-адресов. Один из них - адрес 171. Будет ли добавлен параметр «Advertise_addr»: «10.0.75.1» в справку по настройке consul.json?

person Greg    schedule 10.01.2018