#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