Readiness меняет готовность принимать трафик, liveness приводит к завершению контейнера после порога неудач. Перегрузка не равна зависанию: сначала определите, какое действие действительно поможет.
Почему это важно
Перегруженное приложение или экземпляр, ещё не загрузивший данные, не всегда нужно перезапускать. Иногда достаточно временно перестать направлять к нему запросы. Но проверка необязательной общей зависимости может одновременно исключить все копии сервиса — такую логику нужно испытать до выпуска.
Что подтверждено
После настроенного числа последовательных неудач readiness контейнер становится неготовым. Это отражается на готовности Pod и его участии в обычном трафике подходящих Service; адрес может оставаться в EndpointSlice с изменённым условием.
Граница применимости: Обычный Service без publishNotReadyAddresses; уже открытые соединения требуют отдельной проверки завершения.
Неудачная readiness-проверка сама по себе не перезапускает контейнер. Проверка liveness предназначена для ситуации, когда нужно завершить неисправный экземпляр и применить политику перезапуска.
Граница применимости: Различие действий readiness и liveness в Kubernetes.
Проверка необязательной общей зависимости может одновременно сделать неготовыми все копии сервиса. Их процессы продолжат работать, но обычный Service перестанет выбирать их для трафика. Проверяйте, действительно ли без этой зависимости приложение не может отвечать.
Граница применимости: Проектирование readiness для обычного Service; зависимость не нужна для всех обслуживаемых операций.
Интервал проверки, таймаут и число последовательных неудач задают разные условия. Короткий таймаут под нагрузкой может принять медленный ответ за неготовность, даже если процесс не завис.
Граница применимости: Настройки readiness-проверки Kubernetes.
Если readiness-проверка не задана, Kubernetes не выполняет проверку приложения за вас. Переход Pod в готовность по остальным условиям не доказывает завершение прогрева или доступность нужной операции.
Граница применимости: Отсутствие readiness probe; остальные условия готовности Pod сохраняют своё действие.
Readiness продолжает выполняться и после неудачи. Когда проверка снова достигает порога успеха, контейнер может вернуться в готовность без перезапуска процесса.
Граница применимости: Повторные проверки и пороги успеха readiness в Kubernetes; готовность всего Pod зависит также от остальных условий.
Не путать
Readiness нужна на всём протяжении работы, startup — для ограниченного начального ожидания. Успешный старт не означает, что экземпляр навсегда готов к запросам.
Что проверить
- Определите, какую операцию должен уметь выполнить экземпляр, чтобы получить трафик.
- Уберите из проверки зависимости, которые не нужны для этой операции.
- Подберите интервал, таймаут и пороги по измерениям под нагрузкой.
- Испытайте отказ общей зависимости сразу у всех копий приложения.
- Проверьте переход ready в EndpointSlice и настройки publishNotReadyAddresses.
- Подтвердите, что после восстановления готовность возвращается без лишнего перезапуска.
- Отдельно испытайте уже открытые соединения при выводе экземпляра из обслуживания.
Первоисточники
Liveness, Readiness, and Startup Probes
Kubernetes · Kubernetes current documentation
Разделяет проверки готовности, работоспособности и запуска. Объясняет их действия и риск каскадного отказа при неверной настройке.
Открыть первоисточникConfigure Liveness, Readiness and Startup Probes
Kubernetes · документация Kubernetes v1.37, страница открыта 6 сентября 2026 года
Открыт редактором 6 сентября 2026 года, заголовок и версия документа сверены. Пороги последовательных неудач, интервалы, таймауты и расчёт бюджета запуска.
Открыть первоисточникEndpointSlices
Kubernetes · документация Kubernetes v1.37, страница открыта 6 сентября 2026 года
Открыт редактором 6 сентября 2026 года, заголовок и версия документа сверены. Адреса и условия ready/serving/terminating; несколько срезов одной службы.
Открыть первоисточникService
Kubernetes · Kubernetes current documentation
Описывает сетевой доступ через Service к меняющемуся набору экземпляров приложения и связанные EndpointSlice.
Открыть первоисточникPod Lifecycle
Kubernetes · Kubernetes current documentation
Описывает назначение узла, состояния Pod и контейнеров, перезапуски контейнеров и создание нового Pod с другим UID взамен прежнего.
Открыть первоисточник