Как заставить 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, чтобы опубликовать порт, чтобы вы могли получить доступ к контейнеру с хост-компьютера через указанный порт.