Давайте выберем правильный инструмент для успешного мониторинга Kubernetes!
Kubernetes – это готовая к работе платформа с открытым исходным кодом, созданная на основе приобретенного в Google опыта в области создания контейнеров, связанного с лучшими в своем классе идеями.
Он предназначен для автоматизации развертывания, масштабирования и эксплуатации контейнеров приложений.
Благодаря современному способу создания и запуска приложений ваши стратегии управления и наблюдения должны совершенствоваться, а также и инструменты, которые вы используете.
Традиционных инструментов мониторинга инфраструктуры может быть недостаточно, и вам нужна специализированная система мониторинга Kubernetes, как указано ниже.
Некоторые помогают с журналами, а другие с метриками.
Некоторые предоставляют интерфейс для работы с Kubernetes с высоты птичьего полета.
Некоторые из них родом из самого Kubernetes, а другие более агностичтны.
1 Prometheus
Prometheus является одним из самых популярных и лучших инструментов мониторинга, используемых с Kubernetes.
Этот инструмент был разработан на ранних этапах SoundCloud, а затем передан в дар CNCF.
Этот инструмент и вдохновил Google Borg Monitor.
Prometheus хранит все свои данные в виде временной последовательности.
В двух словах, что выделяет Prometheus среди других баз данных временных меток, так это его встроенные механизмы оповещения, многомерная модель данных, модель pull-to-push, PromQL (язык запросов Prometheus) и, конечно, растущее сообщество.
- Не зависит от распределенного хранилища;
- Цели обнаруживаются через обнаружение службы или статическую конфигурацию
- PromQL, гибкий язык запросов, позволяющий использовать эту размерность
- Отдельные узлы сервера являются автономными
- Сбор временных меток происходит через модель извлечения по HTTP
- Выдвижение временных рядов поддерживается через промежуточный шлюз
- Многомерная модель данных с данными временных рядов, проанализированными по имени метрики и парам ключ / значение
- И, несколько форм поддержки графиков и приборной панели
Лучший способ изучить Prometheus – это установить на свой тестовый сервер и поиграть с ним.
2 Kubewatch
Kubewatch – это инструмент мониторинга Kubernetes, который публикует уведомления о событиях на канале Slack.
Этот инструмент предоставляет вам возможность определить ресурсы, которые необходимо отслеживать.
Он создан на Go и использует клиентскую библиотеку Kubernetes для соединения с сервером API Kubernetes.
Эта библиотека служит базовым фактором для наблюдения за событиями в Кубере.
kubewatch прост в настройке и может быть развернут с использованием helm или самой системы.
Если быть более точным, kubewatch будет искать изменения, необходимые для определенных ресурсов Kubernetes, т.е. развертывания, наборы демонов, модули, службы, наборы реплик, службы, контроллеры репликации, секреты и конфигмэпы.
3 Jaeger
Распределенная трассировка неуклонно переходит в мониторинг и устранение неполадок в средах Kubernetes.
Jaeger – это система отслеживания, выпущенная Uber Technologies.
Он используется для мониторинга транзакций и устранения неполадок в сложных распределенных системах.
Jaeger предлагает инструменты на базе OpenTracing для Java, Python, Node и C ++.
Он использует согласованную предварительную выборку с индивидуальными вероятностями для каждой услуги / конечной точки и поддерживает несколько внутренних механизмов хранения – Cassandra, Elasticsearch, Kafka и память.
Некоторые из ключевых особенностей Jaeger включают в себя:
- Распределенный мониторинг транзакций
- Оптимизация производительности / задержки
- Анализ причин
- Анализ сервисных зависимостей
4 cAdvisor
cAdvisor предназначен для сборки, обработки и экспорта информации об использовании ресурсов и производстве рабочих контейнеров.
Он также развился в Kubernetes и интегрирован в двоичный файл Kubelet.
Он прост в использовании (он предоставляет готовые метрики Prometheus), но недостаточно надежен, чтобы быть признанным в качестве универсального решения для мониторинга.
В отличие от других, cAdvisor развернут не на модуль, а на уровне узла. Он будет автоматически определять все контейнеры, работающие в системе, и собирает системные показатели, такие как память, процессор, сеть и т. д.
5 Cabin
Cabin – лучшее приложение для мобильных устройств для Kubernetes.
Интерфейс Cabin разработан с использованием React Native, поэтому на нем работают как устройства iOS, так и Android.
Он на ходу ваш помощник, который дает детальные действия для управления ресурсами Kubernetes.
Например, вы можете также удалять поды простым проведением пальцем влево. Вы также можете масштабировать развертывания с помощью прокрутки пальцем.
Некоторые другие функции:
- Создание базовых развертываний. Масштабные развертывания и контроллеры репликации.
- Переключение типов служб
- Выставлять развертывания через сервисы
- Интеграция с GKE для предоставления кластера одним щелчком мыши
- Доступ к журналам в нескольких контейнерах
- Позволяет удалять и добавить ярлыки
- Позволяет открывать сервисы NodePort в браузере
- Позволяет выполнять команды в контейнерах
6 Telepresence
Telepresence позволяет вам запускать определенную службу локально при подключении этой службы к удаленному кластеру Kubernetes.
Этот инструмент позволяет разработчикам, работающим над мультисервисными операциями, применять любой локально установленный инструмент для проверки / отладки / редактирования вашего сервиса.
Например, вы можете запустить отладчик или IDE.
Этот инструмент также позволяет разработчикам быстро разрабатывать конкретный сервис, даже если этот сервис зависит от отдельных сервисов в кластере.
Сделайте переход к своему сервису, сохраните, и вы сразу сможете обнаружить новый сервис в действии.
Telepresence – это впечатляющая локальная среда разработки для сервисов, работающих в Kubernetes.
Часть живой отладки уникальна и развивается довольно быстро.
Ниже приведены некоторые из его дополнительных функций.
7 Weave Scope
Weave Scope – это инструмент для поиска и устранения неисправностей в Kubernetes.
Он создает логические топологии вашего приложения и инфраструктуры, которые облегчают вам рассмотрение, мониторинг и управление вашим контейнерным приложением на основе микросервисов.
8 Grafana
Grafana используется для визуализации метрик, но также является инструментом оповещения.
Grafana может выдавать оповещения по Slack, webhook, mail или альтернативным каналам связи.
Другой ключевой причиной является источник ваших данных: Grafana может запрашивать несколько объектов одновременно.
Вы можете делать запросы из базы данных, например, ElasticSearch, или из инструментов мониторинга, таких как Cloudwatch, а также устанавливать для нее оповещения.
Некоторые другие функции, как показано ниже.
9 Zabbix
С Zabbix возможно воссоздавать практически неограниченные типы данных из системы.
Высокопроизводительные системы мониторинга в реальном времени, позволяющие одновременно управлять десятками тысяч серверов, виртуальных машин и сетевых устройств.
Заключение
Выбор правильного инструмента мониторинга имеет решающее значение.
Прежде всего, вы можете попробовать эти инструменты БЕСПЛАТНО, так почему бы не приоберсти облачную виртуальную машину и посмотреть, что лучше всего сработает для вашего мониторинга в Kubernetes?