Kubernetes: проверка готовности с помощью httpGet

Я очень смущен зондом готовности. Предположим, я использую httpGet с / health в качестве конечной точки зондирования. Как только проверка готовности вернет 500, сервер перестанет обслуживать трафик. Тогда как может работать конечная точка / health? Другими словами, если проверка готовности не удалась, как она может снова работать, если она больше не может отвечать на будущие проверки / проверки работоспособности?

Полагаю, одно правильное объяснение состоит в том, что путь вызывается локально? (т.е. не через https: $ {ip and port} / health)


person Brian Shih    schedule 10.07.2020    source источник
comment
вы должны использовать конечную точку / health в livenessProbe, чтобы кубернеты убили и запустили другой под. для готовности вы можете использовать другую конечную точку, связанную с вашей бизнес-логикой.   -  person m303945    schedule 10.07.2020
comment
Это должно ответить на ваш вопрос: stackoverflow.com/a/46029885/10020419   -  person Chris    schedule 10.07.2020


Ответы (1)


У вас опечатка .. вы сказали:

Как только проверка готовности вернет 500, сервер перестанет обслуживать трафик.

Однако должно быть:

Как только проверка готовности вернет 500, служба k8s прекратит обслуживание трафика.

введите описание изображения здесь

Сервис k8s ведет себя как балансировщик нагрузки для нескольких модулей.

  • Если модуль готов, конечная точка будет создана для готового модуля, и трафик будет получен.
  • Если модуль не готов, его конечная точка будет удалена, и он больше не будет получать трафик.

В то время как Зонд готовности решает перенаправлять трафик или нет, Зонд живучести решает перезапускать модуль или нет.

Если вы хотите избавиться от нездорового стручка, вы также должны указать Liveness Probe.

Итак, подведем итоги:

Чтобы получить полное развертывание высокой доступности, вам понадобятся 3 вещи вместе:

  • Под управлением осуществляется Развертывание, которое поддерживает несколько реплик.
  • Зонд живучести поможет удалить / перезапустить неподходящий модуль. Через некоторое время (6 перезапусков) модуль перестанет работать, и при развертывании будет создан новый.
  • Зонд готовности поможет перенаправить трафик только на готовые модули: либо в начале выполнения, либо в конце выполнения (постепенное завершение работы).
person Abdennour TOUMI    schedule 10.07.2020