Kubernetes: проверка готовности с помощью httpGet - PullRequest
1 голос
/ 10 июля 2020

Меня очень смущает зонд готовности. Предположим, я использую httpGet с / health в качестве конечной точки зондирования. Как только проверка готовности вернет 500, сервер перестанет обслуживать трафик c. Тогда как может работать конечная точка / health? Другими словами, если проверка готовности не удалась, как она может снова работать, если она больше не может отвечать на будущие проверки / проверки работоспособности? (т.е. не через https: $ {ip and port} / health)

1 Ответ

3 голосов
/ 10 июля 2020

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

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

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

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

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

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

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

Пока Проверка готовности решает пересылать трафик c или нет, Зонд живучести решает перезапускать Pod или нет.

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

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

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

  • Pod управляется Развертывание , которое будет поддерживать несколько реплик.
  • Зонд живучести поможет удалить / перезапустить неблагополучный модуль. После некоторого времени (6 перезапусков) модуль перестанет работать и Развертывание позаботится о том, чтобы принести новый.
  • Зонд готовности поможет перенаправить трафик c только готовым модулям: либо в начале выполнения, либо в конце выполнения (постепенное завершение работы).
...