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

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

Я запускаю весенние загрузочные приложения с консолью Spring Cloud в Docker. Приложение работает в сети Docker на Docker Swarm.

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

2 ответа

Решение

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

Кроме того, вы можете управлять тем, какие сетевые интерфейсы получать IP-адрес.

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

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

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

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

Запустите контейнер с параметром -p 12345:12345, чтобы опубликовать порт, чтобы вы могли получить доступ к контейнеру с хост-компьютера через указанный порт.

Другие вопросы по тегам