Spring Boot 管理员列出 kubernetes 内部 url。无法导航到应用程序页面
Posted
技术标签:
【中文标题】Spring Boot 管理员列出 kubernetes 内部 url。无法导航到应用程序页面【英文标题】:Spring boot admin listing kubernetes internal urls. Not able to navigate to the application page 【发布时间】:2020-04-12 20:55:26 【问题描述】:问题
尝试使用 Spring Boot admin 对 Kubernetes 中运行的 Spring Boot 微服务进行深度监控。 Spring Boot 管理员列出微服务但指向内部 IP。显示内部 IP 的 Spring boot admin 应用列表页面
申请详情页面的信息几乎为零
详情
Kubernetes 1.15 Spring Boot 管理员正在使用 Spring Cloud Discovery 发现 Spring Boot 应用程序 spring-cloud-kubernetes 版本 1.1.0.RELEASE 问题在于 IP 属于内部 pod 网络,在任何现实世界场景中用户都无法访问。关于如何处理这种情况的任何提示?有其他选择吗?
我还想知道,如果 pod 具有多个副本,spring boot 管理员会如何表现。我认为通过入口或节点端口指向唯一的 pod 副本几乎是不可能的。
我正在做的黑客攻击
如果我可以启动另一个将 Linux 桌面公开给最终用户的 pod。通过此桌面的浏览器,用户可能能够访问 pod 网络 ip。这只是一个疯狂的想法。
【问题讨论】:
【参考方案1】:Spring Boot Admin 根据其名称通过以下属性注册每个应用程序/客户端。
spring.boot.admin.client.instance.name=$spring.application.name
如果您的所有 pod 都具有相同的名称,它可以通过启用 perfer-ip 属性(默认为 false)基于单个 ips 进行注册:
spring.boot.admin.client.instance.prefer-ip=true
你的情况,你想SBA注册基于Kubernetes负载均衡的url,那么service-base-url属性应该设置对应的应用程序的url。
spring.boot.admin.client.instance.service-base-url=http://myapp.com
【讨论】:
如果我有两个使用 pod 的副本功能创建的客户端实例(我的应用程序)。在这种情况下,我只有一个指向两个客户端的 url。所以我认为这在真实场景中可能行不通。 但是,当然,感谢您的输入,看起来这可以解决我在单个客户端场景中的问题。 嗨 Arunvg,我们的应用程序也有多个副本。这对我们来说很好。 SBA 不知道各个 pod,而是注册负载平衡的 url。只是,您不应该启用 prefer-ip 属性。你可以试试看:) 当然让我试试。你的信心给了我希望:) 是的,它奏效了。我正在寻找一个完全不同的方向以上是关于Spring Boot 管理员列出 kubernetes 内部 url。无法导航到应用程序页面的主要内容,如果未能解决你的问题,请参考以下文章
列出所有已部署的 REST 端点(spring-boot、jersey)
如何从 IntelliJ 运行/部署 Spring Boot 微服务到本地 Kubernetes 集群?
Spring Boot 执行器端点 /prometheus 未列出与 tomcat 相关的指标,例如请求计数