как определить адрес собственного реестра микросервиса для консула в кубернетесе

#kubernetes #consul

Вопрос:

Я хочу зарегистрировать свой микросервис загрузки java spring в consul в кластере kubernetes, первым шагом я добавляю зависимости consul с помощью gradle:

 implementation "org.springframework.cloud:spring-cloud-starter-consul-discovery"
 

теперь я определяю конфигурацию консула следующим образом в application.properties :

 # registry center
spring.cloud.consul.host=consul-1630121482-headless.reddwarf-pro.svc.cluster.local
spring.cloud.consule.port=8500
spring.cloud.consul.enabled=true
spring.cloud.consul.discovery.health-check-interval=15s
spring.cloud.consul.discovery.instance-id= ${spring.application.name}:${server.port} 
 

но консул показывает такую ошибку:

 Get "http://dolphin-post-service-78f88c8c54-nrfbz:11014/actuator/health": dial tcp: lookup dolphin-post-service-78f88c8c54-nrfbz on 10.96.0.10:53: no such host
 

консул получает доступ к моей службе по имени модуля, так как же заставить консула получить доступ к правильному URL-адресу? Я думаю, что URL-адрес должен выглядеть так:

 dolphin-post-service-78f88c8c54-nrfbz.dolphin-post-service.reddwarf-pro.svc.cluster.local
 

итак, что я должен сделать, чтобы это сработало?

Ответ №1:

добавьте эту конфигурацию для applicaton.properties использования IP-адреса:

 spring.cloud.consul.discovery.prefer-ip-address= true