Чем отличаются liveness, readiness и startup проверки и что в них проверять?
Они отвечают на разные вопросы, и путать их дорого. Liveness — «процесс жив или его надо перезапустить»; проверять в нём надо только сам процесс, без походов в базу и внешние сервисы. Readiness — «можно ли слать трафик прямо сейчас»; здесь уместно проверить критичные зависимости и отдать отказ на время прогрева или завершения, при этом инстанс не перезапускается. Startup — «процесс ещё поднимается»; она отключает liveness на время долгого старта, чтобы медленный прогрев не превратился в бесконечный цикл перезапусков. Главная ловушка: если liveness проверяет базу, то падение базы перезапускает все инстансы приложения разом, и к аварии добавляются холодные старты. Проверка должна быть дешёвой и с кэшем результата, иначе сами проверки станут заметной нагрузкой.