我已经看过一些关于这个的问题,但没有得到一个明确的答案。我有一个在Openshift K8s集群上运行的Consul集群。我还有一组需要向Consul注册并使用Consul的服务,它们也运行在同一个K8s集群中。
我的问题是,服务使用不可接触的地址注册自己,这些地址看起来像pod地址,而不是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服务的地址?
非常感谢您的帮助
发布于 2020-04-22 00:00:37
找到解决方案了!
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服务名称相同。
https://stackoverflow.com/questions/61323421
复制相似问题