我在Kubernetes上设置了一个Spring Boot Admin Client,并最多扩展了3个副本,但是当我尝试检查实例时,Admin Server仅显示一个
答案 0 :(得分:0)
为了使SBA(Spring Boot Admin)了解您的服务的三个实例是不同的,您需要确保每个实例都使用其“内部IP地址”在SBA中注册。
这样做将使SBA独立地查询每个实例的运行状况,并导致spring为每个吊舱创建唯一的实例ID。
请注意,使用k8s服务名称进行注册会导致SBA的运行状况查询在该服务的Pod之间进行负载平衡。
为此,请在您的www.google.com
中添加以下内容:
application.yml
具有:
spring:
boot.admin.client:
url: http://<k8s-service-name-and-port>
instance:
name: <service-name>
service-base-url: http://${K8S_POD_IP}:8080
management-base-url: http://${K8S_POD_IP}:8081
auto-deregistration: true
是一个环境变量,其pod的IP地址必须可以从SBA访问-这是SBA将用来查询服务实例的运行状况的地址K8S_POD_IP
是单击服务实例时SBA的UI将使用的URL-此URL应指向k8s的服务spring.boot.admin.client.url
-SBA用来监视每个服务的运行状况,对于每个实例都应该是唯一的,并且可以从SBA进行访问spring.boot.admin.client.management-base-url
设置为auto-deregistration
,则会收到不正常实例的通知-使用此设置,实例将从SBA降级关闭时。答案 1 :(得分:-1)
您需要在yml文件中设置参数:
eureka.instance.instance-id: ${spring.cloud.client.ip-address}:${server.port}