在Kubernetes上使用Spring Boot Admin监视副本

时间:2019-07-04 18:54:42

标签: java spring-boot spring-boot-admin

我在Kubernetes上设置了一个Spring Boot Admin Client,并最多扩展了3个副本,但是当我尝试检查实例时,Admin Server仅显示一个

2 个答案:

答案 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}