Обзор Komodor — графического интерфейса для мониторинга и поиска неполадок в Kubernetes

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

В статье рассматривается Komodor — сервис, предоставляющий удобный веб-интерфейс для мониторинга за состоянием кластера Kubernetes. В нем реализованы удобные инструменты для отслеживания и управления состоянием развернутых ресурсов и уведомления пользователей в случае непредвиденных ситуаций.

Об инструменте

Komodor представляет собой сервис, разворачиваемый в кластере K8s и позволяющий управлять работающими в нем ресурсами, отслеживать их состояние и гибко настраивать систему уведомлений, сообщающих пользователю о критических ситуациях. При этом создавать новые ресурсы или разворачивать приложения с нуля возможности нет, но можно откатить его на предыдущую версию, выполнив rollback.

Разработчики предоставляют три тарифных плана:

  • Freemium — доступный для всех с 11 января этого года план, включающий поддержку до 50 узлов, 5 кластеров и 5 пользователей;

  • Business — 100 узлов, 10 кластеров и 50 пользователей;

  • Enterprise — корпоративный тарифный план, индивидуальный для каждого отдельного заказчика.

Агент Komodor совместим с dthcbKubernetes 1.16+ на любой ОС.

Установка

Перед установкой необходимо зарегистрироваться на сайте проекта и получить ключ доступа, связанный с аккаунтом. 

Установить Komodor Agent можно несколькими способами — воспользовавшись подготовленным скриптом для ручной установки, Helm-чартом или командой Kustomize.

Команда установки доступна в личном кабинете и уже содержит API-ключ вашего аккаунта.

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

werf helm repo add komodorio https://helm-charts.komodor.io
werf helm repo update
werf helm upgrade --install k8s-watcher komodorio/k8s-watcher \
--set watcher.actions.basic=true \
--set watcher.actions.advanced=true \
--set watcher.actions.podExec=true --set apiKey=XXXYYYZZZ \
--set watcher.clusterName=default  \
--set watcher.actions.podExec=true \
--set watcher.resources.secret=true

После развертывания агента в кластере в личном кабинете на сайте Komodor становится доступен веб-интерфейс с дашбордом.

Интерфейс пользователя и возможности инструмента

Главный экран веб-интерфейса выглядит так:

По наполнению он похож на ванильный Dashboard Kubernetes с небольшими дополнениями. В левом меню доступны разделы, соответствующие разделам кластера. Рассмотрим их подробнее.

Services — быстрый доступ к панели со всеми Services, которые можно отфильтровать по различным критериям. При переходе в Service будет доступна полная информация о нем, а также возможность редактировать и управлять его состоянием, включая просмотр связанных с ним событий.

Jobs — просмотр завершенных и выполняющихся Jobs.

Events — просмотр событий, произошедших в кластере.

Resources — просмотр и управление ресурсами кластера. Доступны следующие сущности:

  • Nodes — доступны drain или cordon выбранного узла, возврат его в кластер, а также детальная информация и перечень всех Pod'ов на узле.

  • Workloads — доступ к Pod'ам, ReplicaSet'ам, Deployment'ам, Job'ам, CronJob'ам, StatefulSet'ам и DaemonSet'ам. Можно посмотреть полную информацию о ресурсе, удалить или изменить его, изменить количество реплик, перезапустить ресурс, включая Job'ы и CronJob'ы.

  • Storage — здесь представленны PVC, PV и StorageClass'ы. Можно просмотреть информацию о них или удалить. Редактирование недоступно.

  • Configuration — ConfigMap'ы, Secret'ы, Resource Quotas, Limit Ranges, HPA и PDB. Для ConfigMap и Secret доступен просмотр полной информации с возможностью редактирования и удаления, для остальных — только просмотр информации. Secret'ы отображаются в Base64.

  • Networks — K8s Services, Endpoint'ы, Ingress'ы, Network Policies и Endpoint Slices. Можно удалять и редактировать манифесты Services, удалить Ingress, а для остального доступен только просмотр информации.

  • Custom Resources Definition — на текущий момент отображает только CRDs, которые есть в кластере, описание и редактирование недоступно.

  • Helm — Helm-релизы. Доступен список ресурсов в релизе, быстрый переход к ним и просмотр манифестов и Values, использованных для релиза, сравнение с определенной версией, а также откат к определенной версии и удаление релиза из кластера.

    Проверить функциональность удалось только с релизами Helm 3, так как в тестовом кластере не было релизов Helm 2. В официальной документации подробностей о поддержке Helm 2 найти не удалось.

На оставшихся вкладках можно работать со следующими ресурсами:

  • Integrations — управление интеграциями (подробнее рассмотрим их ниже);

  • Monitors — управление мониторами для настройки уведомлений;

  • Settings — настройки и редактирование профиля, а также управление доступам.

Плюсы и минусы

Среди основных возможностей Komodor можно выделить:

  • Быструю навигацию по Services, Job'ам и событиям кластера.

  • Детальную информацию об узлах в кластере, их состоянии, а также управление ими.

  • Управление основными объектами K8s с возможностью фильтрации по необходимым параметрам (принадлежность к кластеру, пространству имен, состоянию или лейблу) при наличии соответствующих прав.

  • Просмотр и редактирование ConfigMap'ов и Secret'ов.

  • Просмотр файловых хранилищ (PV, PVC, SC) и управление ими: доступны удаление и просмотр манифеста.

  • Просмотр развернутых в кластере приложений по их типу, связи с другими ресурсами, а также управление ими.

  • Просмотр endpoint'ами, Services K8s и Ingesses и управление ими.

  • Просмотр Helm-релизов, находящихся в кластере, с возможностью сравнения между собой версий.

  • Возможность сделать exec в Pod, при этом прямо в браузере откроется встроенный терминал.

  • Просмотр логов и событий, доступен режим Follow, при котором логи отображаются в реальном времени.

Отдельно хочу обратить внимание на следующие возможности Komodor:

  • Управление доступами к ресурсам настраивается прямо в интерфейсе сервиса. Можно создать кастомную политику, добавить ее в роль, а затем выдать эту роль коллеге. При этом нет нужды разбираться с базовой RBAC Kubernetes — достаточно при деплое Komodor в кластер указать в Values нужные права доступа для Watcher'а сервиса.

    Настройка политики
    Настройка политики
  • Удобная настройка мониторов, которые следят за состоянием ресурсов кластера, и в случае срабатывания триггера отправляют уведомления в сервисы наподобие Slack, Teams, Opsgenie, PageDuty или в любое другой, поддерживающий прием вебхуков.

    Настройка мониторов
    Настройка мониторов
  • Возможность интеграции с различными сервисами: 

    • облачный Gitlab и GitHub с возможностью посмотреть pull- и merge-реквесты, из которых ресурсы были задеплоены в кластер; 

    • Slack, Microsoft Teams или другой сторонний мессенджер для отправки событий;

    • системы мониторинга Sentry и NewRelic;

    • Prometheus и Alertmanager — в этом случае дополнительно будет выводиться информация о потребляемых узлами и Pod'ами ресурсах кластера.

  • Возможность подключения дополнительных кластеров, что позволит мониторить их состояние из этого же интерфейса Komodor. Для этого при добавлении интеграции будет предложен скрипт для быстрой установки Watcher'а в кластер, после чего его можно добавить в интерфейс и переключаться между кластерами для мониторинга нужного.

На мой взгляд, не обошлось и без минусов:

  • Можно только просмотреть список Custom Resources кластера, описание недоступно.

  • На данный момент документация довольно скудная, но она активно развивается и дополняется.

  • Нельзя подключить self-hosted GitLab, интеграция возможна только с облачным GitLab.

  • Довольно высокая стоимость тарифа — 30 USD за каждый узел, добавленный в интеграцию.

  • Возможность использования сервиса только как SaaS — необходимо установить часть софта в кластер, но при этом сам интерфейс предоставляется сервисом и не доступен для self-hosted-установки.

Заключение

На мой взгляд, Komodor предоставляет удобный веб-интерфейс для управления и поддержки кластера Kubernetes. Порадовал приятный дизайн и большой выбор доступных интеграций. При этом цена на бизнес-тарифе кажется высокой, к тому же имеется ограничение на количество собираемых событий за месяц.

Несмотря на эти небольшие минусы, мне кажется, что для небольшой команды разработки Komodor может стать полезным инструментом для работы с кластером или «песочницей» без углубления в дебри командной строки и kubectl.

P.S.

Читайте также в нашем блоге:

  • «Обзор IDE Monokle, или Рассказ о неоправдавшихся ожиданиях»;

  • «Okteto Cloud — ещё один способ организации локальной разработки в Kubernetes»;

  • «Обзор графических интерфейсов для Kubernetes».

Источник: https://habr.com/ru/company/flant/blog/722848/


Интересные статьи

Интересные статьи

Не так давно заказал механическую клавиатуру, которая называется AKKO 3068 Silent. Мне всегда нравилось как она выглядит на картинке. Компания Akko уже довольно давно соз...
25 февраля автор курса «Разработчик C++» в Яндекс.Практикуме Георгий Осипов рассказал о новом этапе языка C++ — Стандарте C++20. В лекции сделан обзор всех основных нововведений Станд...
Субботний вечер омрачен скандалом - сайт не работает, провайдер негодяй, админы - не специалисты, а сервера - решето. Вызов принят, или почему при всей нелюбви к 1С-Битри...
Близится 2021 год, а значит, минуло почти 4 года с момента, когда я присоединился к разработке Pathfinder:Kingmaker в качестве разработчика интерфейсов. За это время игра превратилась...
Привет! Тинькофф-журнал выпускает статьи уже 5 лет. За это время из блога на Вордпрессе он вырос в большую самодельную систему из десятков проектов и инструментов. Я в Т—Ж упра...