2016-09-13 2 views
0

Как создать регистр Spring Cons Consul с внешним IP?Как создать регистр Spring Cloud Consul с внешним IP-адресом?

Я запускаю весенние ботинки с весенним облачным консулом в докер. Приложение работает внутри сети докеров на докеровском рое.

Это означает, что если весенний консул регистрируется с именем хоста или IP-адресом, он получит имя хоста или IP-адрес, который является внутренним для рока докеров. Мой консул-сервер находится вне рога докеров.

ответ

3

Вы можете установить spring.cloud.consul.discovery.ipAddress извне и установить свойство spring.cloud.consul.discovery.preferIpAddress=true.

В качестве альтернативы вы можете получить control which network interfaces для получения IP-адреса.

В Brixton вы можете игнорировать интерфейсы:

spring: 
    cloud: 
    inetutils: 
     ignoredInterfaces: 
     - docker0 
     - veth.* 

В Камден (в настоящее время RC1), вы можете также белый список сетей:

spring: 
    cloud: 
    inetutils: 
     preferredNetworks: 
     - 192.168 
     - 10.0 
+0

К сожалению, на хост-машине нет интерфейса, который имеет внешний IP-адрес. Кроме того, нет способа узнать, какой станок докеров будет запускать изображение докера. Я попытаюсь запустить код для обнаружения внешнего IP-адреса до начала весеннего запуска и установить указанный вами параметр. Печально, однако, что консул не может просто взять внешний ip человека, который регистрирует или что весенняя загрузка не имеет механизма для разрешения внешнего ip. –

+0

Я никогда не понимаю, когда люди говорят, что это грустно. Spring Cloud пытается угадать, а не только для докеров, иначе оператор должен это сказать. Приветствую вас, если у вас есть идея, кроме печали. – spencergibb

+0

Прошу прощения, я хотел сказать, что мне понравилась эта функция. Я понимаю, что это не простая задача и что в такой функции есть много вещей. Я бы определенно отправил PR, если бы у меня было время. Также хочу заявить, что я очень благодарен за Консул Spring Cloud. –

0

Run контейнер с -p 12345: 12345 опубликовать порт, так что вы можете получить доступ к контейнеру с хост-машины через указанный порт

+0

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

+0

После публикации открытых портов вам нужно использовать свой IP-адрес хоста, а не докер. – CMPS

+0

Spring Cloud Consul - это компонент приложения, который автоматически обнаруживает IP/хост, а не меня делает это вручную. Моя цель - создать регистр консула весеннего облака с IP-адресом хоста. Как вы предлагаете мне это сделать? –

Смежные вопросы