Особенности использования Kubernetes, его мониторинга и почему Prometheus недостаточно

Содержание статьи:
● Что такое Kubernetes● Для чего используются Kubernetes● Требования к мониторингу или «полной видимости» инфраструктуры● Prometheus для мониторинга Kubernetes● Корпоративная платформа мониторинга Dynatrace для Kubernetes● Сравнение возможностей Prometheus и Dynatrace для мониторинга Kubernetes● Управление сложностью Kubernetes с помощью Davis AI ● Тур по мониторингу Kubernetes

Что такое Kubernetes?

Kubernetes (также известный как K8s) — это платформа с открытым исходным кодом, используемая для запуска и управления контейнерами и службами. K8s можно использовать в физических или виртуальных кластерах, в локальных, общедоступных, частных и гибридных облаках. Платформа автоматизирует сложные задачи на протяжении всего жизненного цикла контейнера – инициализацию, развертывание, сетевое взаимодействие, масштабирование, балансировку нагрузки и т.д. Это упрощает оркестрацию в облачных средах.

Kubernetes и контейнеры упрощают процесс развертывания, устраняя зависимости от основного стека технологий. Эта независимость от инфраструктуры облегчает управление и автоматизацию непрерывных выпусков, динамическое масштабирование и распределение ресурсов. Когда дело доходит до масштабирования, за счет гибкости K8s делает весь процесс разработки более надежным и устойчивым. Это позволяет командам DevOps широко использовать преимущества контейнеризации без эксплуатационных и управленческих трудностей, которые обычно негативно влияют на производительность команды.

Для чего используется Kubernetes?

Основным преимуществом использования контейнеров перед виртуальными машинами для архитектуры микрослужб является их небольшой размер и производительность. Они могут развертываться и сворачиваться гораздо быстрее и иметь мгновенный доступ к системным ресурсам. Это высвобождает ресурсы и делает инфраструктуру более компактной. Другие преимущества включают сокращение конвейеров CI/CD, эффективное использование ресурсов, высокую доступность, бесперебойную работу независимо от среды и самовосстановление системы путем автоматического перезапуска или репликации контейнеров.
Kubernetes подойдет вам, если у вас возникнут какие-либо из следующих проблем:• Медленная отдельная разработка затрудняет графики выпуска• Неспособность достичь масштабируемости, необходимой для удовлетворения растущего спроса клиентов• Нехватка персонала в компании, специализирующейся на управлении контейнерными программами• Высокие затраты на оптимизацию существующих инфраструктурных ресурсов
Kubernetes помогает преодолеть все эти ограничения. Ниже приведен список поставщиков облачных услуг, предоставляющих платформу Kubernetes в качестве управляемой услуги:
• Azure Kubernetes (AKS)• Amazon Elastic Kubernetes (EKS)• IBM Cloud Kubernetes• Красная шляпа OpenShift• Google Cloud Kubernetes Engine (GKE)
Облачные провайдеры позволяют Kubernetes использоваться предприятиями любой инфраструктуры и масштаба.
Если у компании нет возможности или необходимости использовать облачную инфраструктуру, Kubernetes можно развернуть на земле. Ниже приведен список популярных дистрибутивов, которые позволяют организациям размещать Kubernetes на своих ресурсах:
• Контейнерная платформа Red Hat OpenShift• Rancher Kubernetes Engine• Mirantis Docker Kubernetes Service (ранее Docker EE)• VMWare Tanzu Kubernetes Grid (раніше Pivotal Container Service – PKS)• Конвой D2iQ
Гибкость и портативность контейнеров – большой плюс, но не все так просто. Использование микросервисной архитектуры вместе с технологиями контейнеризации создает новые проблемы для команд DevOps:• Архитектура становится более обширной, ее сложнее контролировать и анализировать во время сбоев или проблем с производительностью• Количество и типы метаданных, которые необходимо проанализировать для диагностики, становятся невероятно большими
Автоматизация и сокращение циклов выпуска создает постоянную нагрузку на IT-команды и операции. Микросервисы и контейнеризация открывают возможности для использования новейших фреймворков. Поддерживать новые технологии становится все труднее из-за отсутствия соответствующей компетенции и постоянных временных ограничений.
Чтобы преодолеть эти проблемы, компаниям необходимо обеспечить автоматический анализ данных и полную видимость того, что происходит в их инфраструктуре Kubernetes. Это необходимо для того, чтобы упростить работу специалистов и ускорить IT-трансформацию всех процессов параллельно. Этот результат может быть достигнут благодаря правильному решению для мониторинга.
Ниже мы более подробно поговорим о методах мониторинга, требованиях, возможностях различных подходов и решений.

Требования к мониторингу или «полной видимости» инфраструктуры

Классическая концепция мониторинга постепенно устаревает. На арену выходит понятие более широкое – «Полная видимость». Что входит в понятие «полная видимость»? Проанализировав различные источники и требования наших клиентов, мы сформировали следующий список требований к идеальному процессу мониторинга:
1. Полная видимость стека.Переход на микросервисы автоматически разветвляет и увеличивает инфраструктуру. Чтобы ничего не пропустить, нужно уметь полноценно отслеживать все, что происходит в обновленном стеке.2. Управление процессами и кодом.Несвоевременная исправленная ошибка имеет тенденцию становиться больше с течением времени. Мониторинг процессов и кода на производительность и наличие ошибок является одним из ключевых факторов сокращения времени, затрачиваемого на поиск одних и тех же ошибок и улучшения метрик.3. Простота использования.Мониторинг осуществляется для того, чтобы затрачиваемого времени становилось меньше и эффективность, соответственно, повышалась. Поэтому главное здесь не попасть в ловушку «фиктивных улучшений», когда, с одной стороны, работает мониторинг и оптимизирует процессы CI/CD, а с другой стороны, требуется время на постоянные настройки, расширения, обновления и т.д.4. Автоматическое масштабирование.Микросервисы упростили и ускорили разработку, но затруднили управление обновленным стеком. Вам нужно иметь решение, которое может автоматически масштабироваться с изменениями в инфраструктуре, а не то, которое потребует постоянного мониторинга и ручной настройки.5. Возможность мониторинга как облачной, так и наземной инфраструктуры.Все зависит от масштаба инфраструктуры и скорости развития компании. Динамика показывает, что рано или поздно все полностью или частично перейдут на облачные сервисы, а значит, необходимо заранее учитывать возможность гибридного мониторинга.6. Автоматический анализ проблем.Мониторинг не должен превращать одни проблемы в другие. Получения уведомлений об ошибках недостаточно, особенно когда таких ошибок десятки-сотни-тысячи. Выбранное решение должно не только определить наличие ошибок, но и конкретно указать место и причину ошибки без лишних критических вмешательств. Только в этом случае вы действительно сможете оценить, каким именно должен быть мониторинг и его преимущества.7. Мониторинг клиентского опыта.Бизнес отслеживает конверсии в приложениях и веб-ресурсах, и поэтому клиентский опыт является одним из ключевых показателей эффективности. Без понимания поведения пользователя и анализа его сеансов невозможно реализовать правильные улучшения. Например, пока ваш пользователь ждет обновления с улучшенным временем отклика сервиса, вы будете заниматься изменением цвета кнопок. При этом приоритеты в разработке будут не гипотетическими, а визуальными. Мониторинг клиентского опыта является техническим преимуществом для бизнеса сегодня.8. Оптимальная стоимость владения.Создать «платформу видимости» на основе решений с открытым исходным кодом или приобрести готовый мониторинг? Рассчитайте стоимость обслуживания различных подходов в долгосрочной перспективе. В первом случае ваши расходы - это стоимость времени ваших специалистов + время на поиск проблем + упущенные возможности, которых вы бы достигли с большим количеством времени на инновации. В подавляющем большинстве случаев коммерческий мониторинг является оптимальным, поскольку никто никогда не учитывает подход с открытым исходным кодом, ложно полагая, что это единственно правильное решение.
Имея список требований, можно более предметно проанализировать инструменты перед выбором. Ниже мы сравним возможности мониторинга Kubernetes на примере возможностей Prometheus и коммерческого решения Dynatrace. Но сначала давайте познакомимся с решениями.

Prometheus для мониторинга Kubernetes

С переходом в облако Prometheus стал одним из первых инструментов мониторинга Kubernetes.
Prometheus – это система мониторинга с открытым исходным кодом. Это многомерная модель данных, в которой временные ряды идентифицируются по имени метрики и пары ключ-значение. Система работает по pull-модели: сервер лично опрашивает каждый узел, нуждающийся в мониторинге. Prometheus хранит всю собранную информацию локально и выполняет правила для этих данных — агрегирует и записывает новые временные ряды из существующих данных или создает уведомления в соответствии с предварительно настроенными правилами.

Архитектура Prometheus и некоторые составляющие его экосистемы:

Illustration

Не будем подробно останавливаться на интеграциях, в интернете существует большое количество материалов об этом. Ключевой тезис здесь заключается в том, что существует множество расширений и дополнений, и чтобы достичь максимального уровня, идеально подходящего для такого подхода, нужно потратить много времени и ресурсов на свою команду. Это также может потребовать дополнительной производительности инфраструктуры: из-за локального хранения данных Prometheus может потреблять довольно большой объем оперативной памяти.

Prometheus – действительно хороший инструмент, если постоянно выделять время на его поддержку и разработку, ведь, как и любой open source, он нуждается в постоянном участии: расширении, обновлении, масштабировании. Кроме того, работа с Prometheus имеет ограничения, которые стоит учитывать.

Все, что вам нужно знать о Prometheus, описано здесь.

Корпоративная платформа мониторинга Dynatrace для Kubernete

Dynatrace — это платформа мониторинга на основе искусственного интеллекта (Davis AI). Он обеспечивает видимость всей инфраструктуры, будь то наземная, облачная или гибридная. Dynatrace позволяет автоматически, без лишних настроек и интеграций, отслеживать зависимости микросервисов, производительность приложений, их производительность и потребление ресурсов.

Illustration

*мониторинг структуры Kubernetes Dynatrace.

В рамках интеграции Dynatrace с Kubernetes существует два подхода
1. Доверьте мониторинг полностью платформе без необходимости внедрения решений с открытым исходным кодом. В этом случае платформа автоматически обнаружит инфраструктуру и установит агенты на всех кластерах Kubernetes и других элементах инфраструктуры за считанные минуты.

2. Если мониторинг на основе того же Prometheus уже реализован, нужно просто настроить интеграцию благодаря модулю Dynatrace Prometheus OpenMetric и все значения будут автоматически передаваться в единый центр обработки информации и анализироваться благодаря ИИ. Таким образом, больше не будет необходимости собирать и анализировать данные с разных ресурсов и появится больше возможностей контролировать общее состояние инфраструктуры и оперативно решать проблемы.

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

Теперь давайте сделаем краткий анализ двух подходов и дадим комментарии.

Сравнение возможностей мониторинга с открытым исходным кодом и Dynatrace для Kubernetes

Процесс мониторинга, в большинстве своем, состоит из 5 этапов: сбор данных, анализ, консолидация, использование данных (обработка для уведомления), масштабирование, отчетность. Мы составили краткую сравнительную таблицу возможностей двух подходов на основе открытых источников и технического опыта.

Illustration

Если у компании нет аналогичного перечня требований, о котором говорилось выше, то подход Open Source вполне может удовлетворить базовые потребности в мониторинге Kubernetes и инфраструктуры. Конечно, при условии, что затраты ресурсов на поддержку выбранного бизнес-решения не являются критичными. Если масштаб требует более сбалансированного подхода, который будет в первую очередь просчитываться и усиливать и масштабировать роль IT в бизнесе, то нужно рассматривать коммерческие решения с учетом всех их возможностей. Прежде всего, важно подробно ознакомиться с возможностями того или иного корпоративного мониторинга, ведь они также существенно отличаются между собой.

В случае мониторинга Kubernetes Dynatrace максимально упрощает управление и работу с микросервисами. Благодаря ИИ, все те задачи, которые требуют большого количества человеческих ресурсов, могут решаться автоматически в режиме реального времени.

Подведем итоги и расскажем более подробно о том, что получит компания, выбравшая инструмент мониторинга на основе ИИ для управления инфраструктурой Kubernetes

Управление сложностью Kubernetes с помощью Davis AI

Итак, как Dynatrace помогает разумно управлять Kubernetes?
ВидетьПанель мониторинга предоставляет обзор всей рабочей нагрузки Kubernetes, показывая все существующие контейнеры и их текущие метрики. Затем она динамически оценивает текущий размер рабочей нагрузки Kubernetes: недостаточные и чрезмерные рабочие нагрузки. Таким образом, управление кластером Kubernetes с помощью Dynatrace перестает содержать «слепые» зоны для управления и становится более экономичным как с точки зрения затрат ресурсов, так и командного времени.
ОтслеживатьAI, основанный на причинно-следственных связях, детализирует время отклика и пропускную способность службы. Оттуда Davis определяет конкретные проблемы (такие как ухудшение времени отклика) и связывает эти проблемы с конкретными бизнес-последствиями и метрическими аномалиями. Таким образом, одна проблема — это одна проблема, а не шквал сообщений от всех связанных служб. Самое главное, что Davis AI выявляет ключевую причину проблем, что дает возможность исправить ее максимально быстро, не тратя лишние ресурсы.

Например, что-то может указывать на то, что недостаточное распределение ресурсов замедлило работу служб. Решение показывает, как замедление работы одной службы оказало огромное влияние на всю систему. Это может привести к плохому взаимодействию между сервисом и пользователем. Davis AI является единственным движком ИИ, который соединяет точки между сервисами и понимает, как небольшие изменения могут оказать серьезное влияние на сложные системы.

АвтоматизироватьОбладая полным полным доступом ко всей инфраструктуре, наземной или облачной, и будучи интегрированным в процессы CI / CD, Davis AI может выполнять базовую автозамену или самовосстановление. Например, когда процессор перегружен, искусственный интеллект может самостоятельно добавить новый сервис, чтобы перегрузка не создавала проблем для пользователей. После последнего релиза у пользователей возникли проблемы с сервисом и удалось определить это через 2 дня? В этом случае ИИ, при обнаружении проблемы, может откатиться к предыдущей версии, чтобы клиенты продолжали пользоваться работающим сервисом, а команда могла исправить ошибку. Таким образом, бизнес избавляется от ненужного стресса, а IT – от ненужных хлопот.

Чтобы ознакомиться с возможностями Dynatrace для мониторинга Kubernetes, предлагаем вам посмотреть короткую демонстрацию.

Обзор решения

Подпишитесь на новости от Dynatrace

Дякуємо за вашу підписку!


Can't send form.

Please try again later.