почему обе жизни нужны с готовностью - PullRequest
0 голосов
/ 18 февраля 2019

При выполнении проверки работоспособности для стручков kubernetes, зачем нужен датчик живучести, даже если мы уже поддерживаем датчик готовности?

Датчик готовности уже продолжает проверять, готово ли приложение в модуле обслуживать запросы или нет, чтоозначает, что стручок живой.Но все же, зачем нужен датчик живучести?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

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

Датчик жизнеспособности проверяет, не готов ли модуль (не удовлетворяет определенным условиям), он перезапускает модуль в надежде, что этот модуль будетоправиться и стать готовым.

0 голосов
/ 18 февраля 2019

Зонды имеют разное значение с разными результатами:

  • сбой зондов жизнеспособности -> перезапустить модуль
  • сбой зондов готовности -> не отправлять трафик на этот модуль

Невозможно определить жизнеспособность по готовности и наоборот.Тот факт, что модуль не может принимать трафик, знает, не означает, что требуется перезапуск, это может означать, что ему просто нужно время, чтобы закончить какую-то работу.

Если вы развертываете, например, приложение php, эти два, вероятно, будут одинаковыми, но k8s - это универсальная система, которая поддерживает многие типы рабочих нагрузок.


От: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/

Кубеле использует датчики живучести, чтобы знать, когда перезапустить Контейнер.Например, датчики жизнеспособности могут застревать в тупике, когда приложение работает, но не может добиться прогресса.Перезапуск контейнера в таком состоянии может помочь сделать приложение более доступным, несмотря на ошибки.

Кублет использует датчики готовности, чтобы узнать, готов ли контейнер начать прием трафика.Стручок считается готовым, когда все его контейнеры готовы.Одним из применений этого сигнала является управление тем, какие Бобы используются в качестве бэкэндов для Сервисов.Когда модуль не готов, он удаляется из сервисных балансировщиков нагрузки.


Примечаниеподразумевает недостаточную готовность).Но это не меняет объяснения, приведенного выше, потому что, если у вас есть только готовность, вы можете подразумевать, что перезапуск НЕ нужен, что аналогично отсутствию проверки на перезапуск вообще.Кроме того, поскольку зонды определены отдельно, для k8s нет гарантии, что один является подмножеством другого

...