Как использовать готовность KubernetesProbe для самостоятельного излечения стручка, не перезапуская его? - PullRequest
0 голосов
/ 20 февраля 2019

В соответствии с этой документацией, я вижу, что readinessProbe можно использовать для временной остановки запросов к модулю без необходимости перезапуска для корректного восстановления.

https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#define-readiness-probes

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

 1. Readiness probe failed
 2. Created container
 3. Started container
 4. Killing container with id {}

Попытка изменить контейнер restartPolicy на OnFailure, надеясь, что эта конфигурация решит действие pod при сбое readinessProbe, но я вижу следующую ошибку:

The Deployment {} is invalid: spec.template.spec.restartPolicy: Unsupported value: "OnFailure": supported values: "Always"

Что является правильнымспособ остановить запросы к модулю, не перезагружая его и позволяя приложению корректно восстановиться?

1 Ответ

0 голосов
/ 05 марта 2019

Есть два типа зондов.Перезапуски происходят из-за неисправности датчиков жизнеспособности.https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/

датчик живучести

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

проверка готовности

Иногда приложения временно не могут обслуживать трафик.Например, приложению может потребоваться загрузить большие данные или файлы конфигурации во время запуска или зависеть от внешних служб после запуска.В таких случаях вы не хотите уничтожать приложение, но не хотите отправлять ему запросы.Kubernetes предоставляет зонды готовности для обнаружения и смягчения этих ситуаций.Модуль с контейнерами, сообщающими, что они не готовы, не получает трафик через сервисы Kubernetes.

Сегодня я нашел очень хорошее эссе о пробах https://blog.colinbreck.com/kubernetes-liveness-and-readiness-probes-how-to-avoid-shooting-yourself-in-the-foot/

...