SpringBoot Admin - Kubernetes - 覆盖客户端的服务器 URL
SpringBoot Admin - Kubernetes - server to override client URL
关于在 Kubernetes 上部署的 SpringBot 管理员的问题。
SpringBoot Admin 服务器启动正常。
然后,SpringBoot 应用程序(客户端)启动正常。
SpringBoot 客户端应用程序正确注册了自己。
(可以看到
[gistrationTask1] d.c.b.a.c.r.ApplicationRegistrator : Application registered itself as 32a6bf789a7d
在客户端的日志中)
但是,服务器“看到了错误的客户端地址”
[,9e0816eadf7218f9,9e0816eadf7218f9,true] 47 --- [or-http-epoll-1] d.c.b.a.server.services.StatusUpdater : Couldn't retrieve status for Instance(id=32a6bf789a7d, version=0, registration=Registration(name=myservice, managementUrl=https://{some wrong IP here}:9010/, healthUrl=https://{some wrong IP here}:9010/__health, serviceUrl=https://{some wrong IP here}:9010/, source=http-api), registered=true, statusInfo=StatusInfo(status=UNKNOWN, details={}), statusTimestamp=2020-11-08T05:15:00.451717Z, info=Info(values={}), endpoints=Endpoints(endpoints={health=Endpoint(id=health, url=https://{some wrong IP here}:9010/__health)}), buildVersion=null, tags=Tags(values={}))
io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: /{some wrong IP here}:9010
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
|_ checkpoint ? Request to GET health [DefaultWebClient]
Stack trace:
Caused by: java.net.ConnectException: finishConnect(..) failed: Connection refused
at io.netty.channel.unix.Errors.throwConnectException(Errors.java:124) ~[netty-transport-native-unix-common-4.1.53.Final.jar!/:4.1.53.Final
我可以看到一个 IP,在我的示例中{这里有一些错误的 IP}。但是IP错误,因此连接被拒绝
这里的{some wrong IP here}应该是Kubernetes的某个POD级别的IP,无法访问。
如何让 SpringBoot admin 客户端使用正确的 IP(从 Kubernetes 服务配置的 IP)注册自己
如何在服务器中手动覆盖到正确的 IP?即告诉 SpringBoot 管理服务器连接健康端点在哪里?
请问如何让SpringBoot管理服务器正确发现客户端?
感谢您的帮助
经过研究,Spring Boot Admin 暴露了一些属性来实现:
spring.boot.admin.client.instance.health-url=https://my-override-kubernetes.com/health
spring.boot.admin.client.instance.management-url=https://my-override-kubernetes.com.com/health
spring.boot.admin.client.instance.service-url=https://my-override-kubernetes.com.com/health
关于在 Kubernetes 上部署的 SpringBot 管理员的问题。
SpringBoot Admin 服务器启动正常。
然后,SpringBoot 应用程序(客户端)启动正常。
SpringBoot 客户端应用程序正确注册了自己。 (可以看到
[gistrationTask1] d.c.b.a.c.r.ApplicationRegistrator : Application registered itself as 32a6bf789a7d
在客户端的日志中)
但是,服务器“看到了错误的客户端地址”
[,9e0816eadf7218f9,9e0816eadf7218f9,true] 47 --- [or-http-epoll-1] d.c.b.a.server.services.StatusUpdater : Couldn't retrieve status for Instance(id=32a6bf789a7d, version=0, registration=Registration(name=myservice, managementUrl=https://{some wrong IP here}:9010/, healthUrl=https://{some wrong IP here}:9010/__health, serviceUrl=https://{some wrong IP here}:9010/, source=http-api), registered=true, statusInfo=StatusInfo(status=UNKNOWN, details={}), statusTimestamp=2020-11-08T05:15:00.451717Z, info=Info(values={}), endpoints=Endpoints(endpoints={health=Endpoint(id=health, url=https://{some wrong IP here}:9010/__health)}), buildVersion=null, tags=Tags(values={}))
io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: /{some wrong IP here}:9010
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
|_ checkpoint ? Request to GET health [DefaultWebClient]
Stack trace:
Caused by: java.net.ConnectException: finishConnect(..) failed: Connection refused
at io.netty.channel.unix.Errors.throwConnectException(Errors.java:124) ~[netty-transport-native-unix-common-4.1.53.Final.jar!/:4.1.53.Final
我可以看到一个 IP,在我的示例中{这里有一些错误的 IP}。但是IP错误,因此连接被拒绝
这里的{some wrong IP here}应该是Kubernetes的某个POD级别的IP,无法访问。
如何让 SpringBoot admin 客户端使用正确的 IP(从 Kubernetes 服务配置的 IP)注册自己
如何在服务器中手动覆盖到正确的 IP?即告诉 SpringBoot 管理服务器连接健康端点在哪里?
请问如何让SpringBoot管理服务器正确发现客户端?
感谢您的帮助
经过研究,Spring Boot Admin 暴露了一些属性来实现:
spring.boot.admin.client.instance.health-url=https://my-override-kubernetes.com/health
spring.boot.admin.client.instance.management-url=https://my-override-kubernetes.com.com/health
spring.boot.admin.client.instance.service-url=https://my-override-kubernetes.com.com/health