Мониторинг реплик с помощью Spring Boot Admin в Kubernetes

Я настроил клиент администрирования Spring Boot в Kubernetes и увеличил до 3 реплик, но когда я пытаюсь проверить экземпляры, сервер администратора показывает только один

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
900
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

вам нужно установить параметр в файле yml:

eureka.instance.instance-id: ${spring.cloud.client.ip-address}:${server.port}

Саймон, я использую Eureka в своих проектах, у меня есть 3 реплики K8S на одном порту.

João Garcia 26.07.2019 15:47
Ответ принят как подходящий

Чтобы SBA (администратор Spring Boot) понял, что три экземпляра ваших служб различны, вам необходимо убедиться, что каждый из них зарегистрирован в SBA с использованием своего «внутреннего IP-адреса».

Это позволит SBA запрашивать работоспособность каждого экземпляра независимо, и в результате Spring создаст уникальный идентификатор экземпляра для каждого модуля.

Обратите внимание, что использование имени службы k8s для регистрации приведет к тому, что запросы работоспособности SBA будут распределяться между модулями службы с балансировкой нагрузки.

Для этого добавьте в свой 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

Наличие:

  • K8S_POD_IP — это переменная среды с IP-адресом пода, который должен быть доступен из SBA — это адрес, который будет использоваться SBA для запроса состояния вашего экземпляра службы.
  • spring.boot.admin.client.url — это URL-адрес, который будет использоваться пользовательским интерфейсом SBA при нажатии на экземпляр службы — этот URL-адрес должен указывать на службу k8s.
  • spring.boot.admin.client.management-base-url — используется SBA для мониторинга работоспособности каждой службы, должно быть уникальным для каждого экземпляра и должно быть доступно из SBA.
  • Если вы не установите auto-deregistration на true всякий раз, когда вы развертываете обновление или масштабируете свою службу, вы будете получать уведомления о неработоспособных экземплярах — с этим параметром экземпляры будут исключены из SBA при завершении работы.

Другие вопросы по теме