Добавьте проверку работоспособности для Kafka-потребителя k8s pods

Как добавить проверку здоровья(liveness/readiness) в Kafka consumer pods в моем Django приложении. Новичок в этих вещах, связанных с инфраструктурой. Пожалуйста, помогите реализовать периодическую проверку здоровья для Kafka consumer pods в моем приложении, чтобы оно не позволяло pods вращаться, если их здоровье не идеально, если есть какие-либо проблемы.

Вы можете добавить простую конечную точку GET /health, которая возвращает статус 200.

Или, если вам нужно что-то более динамичное для того, что делает потребитель Kafka, ловите исключения в своем потребителе и переверните булеву переменную, которая проверяется как часть вашего /health маршрута, чтобы вернуть 500 код при любой серьезной ошибке. После этого Kubernetes завершит работу всех стручков с не-200 HTTP статусом probe

Прежде всего, задайте себе два вопроса:

  • Q1: Если Kafka не будет работать, сколько API или функций вашего приложения смогут продолжать работать? Другими словами, насколько важен Kafka для вашего приложения?
  • Q2: Если Kafka не работает, можно ли решить проблему перезапуском контейнера?

Если ответ на вопрос Q1 - "некоторые" или "многие", то вам не нужно ничего делать в пробнике готовности. Если ответ на вопрос Q1 - "очень мало" или "ни одного", то вам следует сообщить о 500 в своем исследовании готовности.

Если ответ на вопрос Q2 - "да", то вы можете сообщить 500 в пробнике liveness, в противном случае просто сообщите 200 OK.

Причину их появления можно найти здесь: https://danielw.cn/health-check-probes-in-k8s

Вернуться на верх