Хроносфера спонсировала этот пост.
Примечание редактора: Этот отрывок поступает из второй главы книги Мэннинга: «Свободно для Кубернета». Эта книга учит, как установить и оптимизировать системы наблюдений для Kubernetes и многое другое. От фундаментальной конфигурации до расширенных интеграций, эта книга излагает полные возможности Fluent Bit для журнала, метрического и трассировки и обработки. Загрузите книгу полностью здесь.
Когда команды начинают инвестировать в наблюдаемость и мониторинг в целом, усилия уходят на проверку того, что их приложения работают гладко. Часто отсутствие предупреждения интерпретируется как признак того, что все в порядке. Но что, если монитор остановился? В этом случае отсутствие событий является проблемой. По этой причине микросервисы в среде Kubernetes должны внедрить конечную точку здоровья, традиционно установленную как /здоровье. Это приводит к вопросу: есть ли у свободного бита что -то, к чему мы можем подключить проверку здоровья контейнеров?
Понимание зондов здоровья контейнера и стручков
Чтобы эффективно управлять контейнерами или капсулами Kubernetes, мы должны иметь возможность опросить их состояние. С этой целью Dockerfiles включают в себя возможность определять действия проверки здоровья. (Для получения дополнительной информации о определении проверки здоровья в DockerFiles, см. Для POD, мы можем описать несколько различных проверок (также называемых зондов), включая Licey. (Для получения дополнительной информации посмотрим, не реагирует ли POD достаточно быстро на проверку здоровья от Kubernetes, мы можем предположить, что стручок незрелый и должен быть заменен новым экземпляром.
Здоровый ответ для Kubernetes — это ответ, обычно содержащий код ответа HTTP 200, который может сопровождаться телом, содержащим OK. Любой код ответа HTTP за пределами диапазона 200-299 считается нездоровым. Это обычная практика для контейнерного приложения включать в себя какую -то реализацию конечной точки, которая может ответить на вызовы на Localhost: 8080/V1/Health, которая предоставляет подробную информацию о здоровье приложения.
Включение веб -сервера бегемого бита
Чтобы свободно свободно общаться и прослушать события, предоставленные веб-сайтами, нам необходимо включить веб-сервер, который дает нам средства для общения и допроса. Первым шагом является настройка бита бегства для запуска веб -сервера, что мы делаем с атрибутом в [SERVICE] Блок называется http_server. Мы также можем настроить IP и порты, которые должен использовать сервер (HTTP_LISTEN и HTTP_PORT, соответственно).
Настройка проверки здоровья в беглевой бит
С активным сервером мы также можем настроить, как беглый бит реагирует на проверки здоровья. Нам нужно включить эту функцию с атрибутом Health_check со значением ON; В противном случае предоставляется ответ веб -сервера по умолчанию. При включении ответа на здоровье мы можем контролировать то, что бегемое бит считает здоровым.
Что бегство считает «здоровым»
Здравоохранение характеризуется подсчетом ошибок из всех выходных плагинов, измеренных по порогу, определенному HC_ERROR_COUNT, и количество неудачных повторных повторений для выводных плагинов (HC_RETRY_FAILURE_COUNT). Мы не хотим, чтобы количество ошибок и количество повторных ошибок было совокупной оценкой с самого начала бита, поэтому нам необходимо определить период, выраженный в секундах (HC_PERIOD), на который применяется количество.
Если у нас был вывод, пытаясь записать в файл, который продолжал сбой, потому что файловая система была заполнена, мы должны ожидать, что количество ошибок или подсчет отказов будет быстро превышать порог. В результате ответ на URL -адрес проверки здоровья будет плохим.
Когда мы используем функцию проверки здоровья, мы должны принять во внимание то, что бегемое бит считает ошибкой и ее последствиями. Любой неудачный результат приведет к нездоровому ответу, даже если мы сможем жить с потерей этих результатов. Иными словами, нет никакого способа определить толерантность к временно потерять некоторые результаты; Это подход «все или ничего».
Проблемы с входными данными и частичными сбоями
Другая задача заключается в том, что проверка здоровья не проверяет входные данные, чтобы увидеть, успешно ли они работают. Если ввод хвоста (отслеживание файлов) не может прочитать входной файл, нездоровое состояние не будет успешно произведено, поскольку плагин считается ОК, поскольку плагин существует и значения параметров, по крайней мере, определены.
Запрос бегемого здоровья с помощью Curl и Postman
В следующем списке показан конфигурация функции проверки здоровья; См. Глава 2 \ Fluentbit \ Hello-World-server.conf.
Сделать вывод более читаемым с JQ
При включении в нашу конфигурацию Hello-World мы можем запустить бит (FluenTbit -c Hello-world-server.conf), а затем использовать такой инструмент, как Curl или Postman (или даже браузер), чтобы получить доступ к информации о бите Fluent. URL -адрес для использования составляет 0,0.0.0:2020, что дает нам полезную нагрузку JSON и подробности о экземпляре Fluent Bit. Если мы используем этот подход, мы можем использовать JQ, чтобы сделать вещи более читаемыми:
Curl 0.0.0.0:2020 | jq
В дополнение к командам Curl, мы создали конфигурации Postman, которые можно использовать для использования различных конечных точек API, включая горячую перезагрузку. Подробная информация о настройке почтальона находится в Приложении А.
Примечание: Поскольку Fluent Bit рассматривает все свои данные как JSON, может быть полезно иметь такой инструмент, как JQ, который может отформатировать вывод, чтобы быть более читаемым (иногда называется «симпатичной печати»). Чтобы получить JQ или понять, как это работает, перейдите на https: // jqlang.github.io/jq. Дополнительная информация включена в Приложение B.
Сравнение версий API:/API/v1/vs./API/v2/
Бит бегство обеспечивает API, которые выходят за рамки простого получения сводного представления. Некоторые из API имеют две версии: V1 доступна через путь URL/API/V1/и V2 доступен через Path/API/V2/. Изменения версии представляют улучшения функций; Старая версия URL сохраняется для обратной совместимости. Примером является резюме 45 /метрика конечная точка; V1 предоставляет полезную нагрузку JSON, а V2 отвечает данными, форматированными Prametheus, и большим количеством данных, чем /v1 /метрики.
Использование проверки здоровья бегемого здоровья в зондов Kubernetes
Для проверки здоровья Kubernetes простой ответ, возвращающий OK, указывает на то, что экземпляр контейнера работает гладко. Чтобы получить этот ответ, нам нужно получить доступ к одной из наиболее значимых операционных конечных точек в пути/API/V1/, таких как/API/V1/Health. Если мы вызовыте URL -адрес проверки здоровья с помощью команды Curl, мы можем ожидать, что получите ответ OK:
Curl 0.0.0.0:2020/API/v1/health
Часто задаваемые вопросы 1. Как мне включить проверку здоровья во время бегемого бегства?
Вам нужно настроить три настройки ключей в вашем [SERVICE] блокировать:
- Установите http_server, чтобы включить веб -сервер.
- Добавьте Health_Check, чтобы активировать ответы на проверку здоровья.
- Настройте http_listen и http_port, чтобы указать IP и порт сервера (по умолчанию: 0.0.0.0:2020).
2. Какую конечную точку я должен использовать, чтобы проверить, здорово ли бегство?
Используйте конечную точку/V1/V1/Health, чтобы получить простой ответ OK, указывающий на здоровый статус. Полный формат URL -адреса http: //[host]:[port]/API/V1/Health (например, Curl 0.0.0.0:2020/API/v1/health). Эта конечная точка специально разработана для датчиков Kubernetes Liniation и возвращает коды статуса HTTP 200 для здоровых экземпляров.
3. Как бегство определяет, здорово ли это или нездорово?
Состояние здоровья Fluent Bit основано на производительности плагина вывода в течение определенного временного окна:
- Порог ошибки: Установите через HC_ERROR_COUNT (количество разрешенных ошибок).
- Порог сбоя повторения: Настройка с HC_RETRY_FAILURE_COUNT (неудачные попытки повторения).
- Период времени: Определено HC_PERIOD (секунды), чтобы предотвратить совокупную оценку от запуска.
- Все или ничего подход: Любой неудачный плагин вывода запускает нездоровый ответ, без устойчивости к частичным сбоям
Примечание: Проверка здоровья контролирует только выходные плагины; Отказы плагина ввода (например, нечитаемые файлы) не запускают нездоровый статус.
В последующих главах в книге Мэннинга «Свободно для Кубернета» (особенно главы 3 и 5), мы вернемся к доступным API. Загрузите всю книгу, чтобы прочитать о инновациях и развитии за десятилетие в технологии бегемота, включая руководство по решению современных проблем в наблюдении, особенно в распределенных системах, таких как Kubernetes.
Хроносфера — это платформа наблюдения, созданная для контроля в современном, контейнерном мире. Признанная в качестве лидера крупными аналитическими фирмами, хроносфера дает клиентам сосредоточиться на данных и идеях, которые имеют значение для снижения сложности данных, оптимизировать затраты и быстрее решать проблемы. Узнайте больше новейших из хроносферных трендовых историй Youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Написав для хроносферы, Фил Уилкинс провел более 30 лет в индустрии программного обеспечения, общий опыт работы в бизнесе и средах от многонациональных корпораций до программных стартапов и потребительских организаций до консультаций. Он начинал как разработчик в режиме реального времени, критически важным … Подробнее от Фила Уилкинса