首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring云领事-未在K8s上注册可联系地址的服务

Spring云领事-未在K8s上注册可联系地址的服务
EN

Stack Overflow用户
提问于 2020-04-20 21:16:44
回答 1查看 402关注 0票数 2

我已经看过一些关于这个的问题,但没有得到一个明确的答案。我有一个在Openshift K8s集群上运行的Consul集群。我还有一组需要向Consul注册并使用Consul的服务,它们也运行在同一个K8s集群中。

我的问题是,服务使用不可接触的地址注册自己,这些地址看起来像pod地址,而不是Pod的K8s服务地址。

因此,服务会自行注册,但运行状况检查失败,并且无法通过Consul联系该服务。

下面是我的配置

代码语言:javascript
复制
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服务的地址?

非常感谢您的帮助

EN

回答 1

Stack Overflow用户

发布于 2020-04-22 00:00:37

找到解决方案了!

代码语言:javascript
复制
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

这样设置

代码语言:javascript
复制
spring.cloud.consul.discovery.prefer-ip-address=false
spring.cloud.consul.discovery.prefer-agent-address=false

都设置为false,并添加顶部块中的行,您应该是金色的。请注意,spring.application.name需要与您的OpenShift服务名称相同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61323421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档