Выбор между зондом TCP и зондом HTTP для живучести и готовности в кубернетах
Для простоты, я думаю, что лучше просто проверить TCP-порт на работоспособность и готовность в кубернетах, поскольку для этого не требуется знание конечной точки проверки работоспособности (путь HTTP), а только номер порта. Приветствуется любое руководство по недостаткам простого использования TCP-порта для проверки работоспособности службы. Предположим, что модули не являются прокси для какой-либо другой службы, и вся бизнес-логика находится в самих модулях.
1 ответ
По моему опыту, HTTP выбирается вместо TCP, когда перед вашим приложением в том же модуле есть обратный прокси-сервер, например nginx. В этом случае nginx всегда будет принимать TCP, даже если приложение еще не готово. Таким образом, вам нужен HTTP.
Иначе:
- если это сервер приложений, прослушивающий непосредственно порт
- вы знаете, он начинает слушать только при полной загрузке
- вам не нужна дополнительная логика внутри
/health
(например, проверьте соединение с БД)
Если все вышеперечисленное верно - просто используйте TCP.
СОВЕТ. Вам даже не нужно знать номер порта для TCP, вы можете использовать именованный порт: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#use-a-named-port