Что это значит

Сервис RX не смог стартовать и завершился. Hosting failed to start и Application startup exception это общая обёртка, причина в исключении внутри записи. Две самые частые:

  • База данных недоступна при старте. Внутри будет ошибка подключения к PostgreSQL, например код 57P01 или 57P03, когда база перезапускается.
  • Кластер Orleans. Сервисы RX объединяют свои экземпляры в кластер на фреймворке Orleans. Новый экземпляр перед входом проверяет связь со всеми экземплярами, которые недавно отмечались как живые, и пишет Failed to get ping responses from 1 of 1 active silos, если хотя бы один не ответил. Так бывает, когда прежний экземпляр только что убит (перезапуск пода, перенос на другой узел), а его запись в кластере ещё не устарела. Или когда порт кластера между экземплярами закрыт: сетевой политикой, межсетевым экраном.

BackgroundServiceExceptionBehavior is configured to StopHost значит, что упала фоновая служба внутри сервиса и сервис остановился целиком.

Как проверить

  1. Прочитать исключение внутри записи: ошибка базы, Orleans или другое.
  2. Для Orleans: адрес и порт в тексте Failed to get response from: [S10.0.0.5:11111:...] показывают, к какому экземпляру не достучались. Существует ли ещё такой под или сервер:
kubectl get pods -o wide -n <namespace> | grep 10.0.0.5
  1. Не закрыт ли порт кластера между подами: проверить сетевые политики пространства имён.

Что сделать

  1. Если прежний экземпляр уже удалён, обычно достаточно подождать: его запись устареет, и следующий перезапуск пройдёт. Kubernetes перезапустит под сам.
  2. Если перезапуски идут по кругу дольше нескольких минут, проверить сетевую доступность портов кластера между всеми экземплярами сервиса.
  3. Если внутри ошибка базы, сначала восстановить СУБД, затем перезапустить сервисы, которые не поднялись.