Spring Cloud Consul - Сервис не регистрирует контактный адрес на K8s - PullRequest
1 голос
/ 20 апреля 2020

Я видел несколько вопросов по этому поводу, но не смог получить четкого ответа. У меня кластер Консул работает на кластере Openshift K8s. У меня также есть набор служб, которые необходимо зарегистрировать и использовать Consul, также работающие в том же кластере K8s.

Моя проблема заключается в том, что службы регистрируются с помощью бесконтактных адресов, которые выглядят как адреса Pod. , а не адрес службы K8s для модуля.

Следовательно, служба регистрируется сама, но проверки работоспособности не пройдены, и служба не может связаться через Consul.

Ниже приведена моя конфигурация

spring.cloud.consul.host=myserver
spring.cloud.consul.port=8500
spring.cloud.consul.discovery.prefer-ip-address=false
spring.cloud.consul.discovery.prefer-agent-address=true
spring.cloud.consul.serviceName=${spring.application.name}
spring.cloud.consul.discovery.healthCheckPath=/actuator/health
spring.cloud.consul.discovery.healthCheckInterval=15s
spring.cloud.consul.discovery.health-check-critical-timeout=30m
spring.cloud.consul.discovery.tags=app-type=spring

spring.cloud.inetutils.ignoredInterfaces=docker0

Что мне нужно сделать, чтобы получить услугу для регистрации контактного адреса, то есть адреса службы K8s?

Большое спасибо заранее за вашу помощь

1 Ответ

0 голосов
/ 21 апреля 2020

Нашли решение!

spring.cloud.consul.discovery.health-check-url=http://${spring.application.name}-my-openshift-route-url/actuator/health
spring.cloud.consul.discovery.hostname=${spring.application.name}-my-openshift-route-url
spring.cloud.consul.discovery.port=80
spring.cloud.consul.discovery.scheme=http

Так что установите

spring.cloud.consul.discovery.prefer-ip-address=false
spring.cloud.consul.discovery.prefer-agent-address=false

и в false, и добавьте строки из верхнего блока, и вы должны быть золотыми. Обратите внимание, что spring.application.name должно совпадать с именем вашего сервиса OpenShift.

...