Spring Boot 管理列出 kubernetes 内部 url。无法导航至应用程序页面

aru*_*nvg 2 spring-boot kubernetes microservices spring-cloud spring-boot-admin

问题

  • 尝试使用 Spring boot admin 对 Kubernetes 中运行的 Spring Boot 微服务进行深度监控。
  • Spring Boot 管理列出了微服务,但指向内部 IP。

显示内部 IP 的 Spring Boot 管理应用程序列表页面

显示内部 IP 的 Spring Boot 管理应用程序列表页面

应用程序详细信息页面几乎为零信息

应用详情页面几乎为零信息

细节

  • 库伯内特斯 1.15
  • Spring boot 管理员使用 Spring cloud discovery 发现 Spring boot 应用程序
  • spring-cloud-kubernetes 版本 1.1.0.RELEASE
  • 问题是 IP 属于内部 Pod 网络,在任何现实场景中用户都无法访问。

关于如何处理这种情况有任何提示吗?还有其他选择吗?

我还想知道如果 Pod 具有多个副本,Spring Boot 管理员会如何表现。我认为通过入口或节点端口指向唯一的 Pod 副本几乎是不可能的。

我正在研究的黑客

如果我可以启动另一个 pod,将 Linux 桌面公开给最终用户。从该桌面的浏览器中,用户可以访问 pod 网络 ip。作为黑客,这只是一个疯狂的想法。

小智 6

Spring Boot Admin 通过以下属性根据其名称注册每个应用程序/客户端。

spring.boot.admin.client.instance.name=${spring.application.name}
Run Code Online (Sandbox Code Playgroud)

如果您的所有 pod 都具有相同的名称,则可以通过启用perfer-ip属性(默认情况下为 false)根据各个 ip 进行注册:

spring.boot.admin.client.instance.prefer-ip=true
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您希望SBA基于Kubernetes负载均衡url进行注册,那么service-base-url属性应该设置相应应用程序的url。

spring.boot.admin.client.instance.service-base-url=http://myapp.com
Run Code Online (Sandbox Code Playgroud)