如何在 kubernetes 中定义 consul 的微服务自注册地址

how to define the microservice self registry address to consul in kubernetes

我想将我的 java spring 引导微服务注册到 kubernetes 集群中的 consul 中,第一步我使用 gradle:

添加 consul 依赖项
implementation "org.springframework.cloud:spring-cloud-starter-consul-discovery"

现在我在 application.properties 中这样定义 consul 配置:

# 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

consul通过pod名称访问我的服务,那么如何让consul正确访问url?我认为 url 应该是这样的:

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

那么我应该怎么做才能让它发挥作用?

将此配置添加到 applicaton.properties 使用 ip 地址:

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