Компания Linx — сервис-провайдер с дата-центрами в Москве и Санкт-Петербурге. Мы развиваем свою облачную платформу и недавно запустили Kubernetes as a Service на базе Deckhouse Kubernetes Platform (DKP).
DKP (№27871 в Едином реестре российского ПО) автоматизирует процессы администрирования и эксплуатации K8s-кластеров, связанные с аутентификацией и управлением доступом, мониторингом и логированием, работой с сертификатами и настройкой отказоустойчивости. В этой статье мы рассмотрим ключевые возможности решения и покажем интерфейс платформы. Будет полезно, если вы задумываетесь о том, чтобы попробовать Kubernetes как сервис из облака и хотите узнать больше о доступных на отечественном рынке вариантах.

Ключевые возможности Deckhouse Kubernetes Platform
Многие организации и команды администрируют Kubernetes своими силами. Такая работа требует серьезных трудозатрат. Можно неделями «подкручивать» кластер, прежде чем он будет готов идти в продакшн: нужно правильно развернуть ноды, настроить сетевые политики, обеспечить отказоустойчивость и балансировку нагрузки. Мониторинг и логирование также требуют внимания. Без инструментов вроде Prometheus и Grafana админы остаются «слепыми» и не могут оперативно реагировать на инциденты. В результате растет time-to-market, запуск продуктов откладывается, и возможностей обойти конкурентов становится меньше.
«Сейчас вновь наблюдается тенденция DIY, когда каждый хочет развернуть свой кластер с нуля и заточить его под себя. Нечто подобное мы с вами видели на всех стадиях «взросления» облачных сервисов. Вспомним времена серверных под лестницами и в подвалах, когда появлялись коммерческие дата-центры. Но в случае Kubernetes команды имеют возможность протестировать готовые продукты и обогнать тех, кто занимается построением собственной инфраструктуры».
— Илья Попов, архитектор по разработке и внедрению IT-решений Linx
Deckhouse Kubernetes Platform, развернутая в нашем облаке, закрывает ключевые задачи администрирования и эксплуатации «из коробки». В платформе реализовано несколько десятков преднастроенных профильных и вспомогательных модулей, отвечающих за мониторинг, управление сертификатами, журналирование, аутентификацию и многое другое, что избавляет пользователя от необходимости самостоятельно выбирать основу для технической реализации и возиться с интеграцией.
Авторизация и аутентификация. В DKP реализован централизованный механизм аутентификации. Он обеспечивает безопасный доступ к API кластера K8s, приложениям и веб-интерфейсам. Можно создавать локальных пользователей и группы или интегрироваться с внешними провайдерами учетных данных — поддерживаются Active Directory, OpenID, Lightweight Directory Access Protocol и другие решения.
Ролевая модель. В основе ролевой модели лежит RBAC Kubernetes, но есть и готовые роли (от superadmin до рядовых пользователей) и возможность выдавать произвольные права. Например, можно ограничить доступ к определенным пространствам имен или выдать разрешение только на просмотр логов. Кроме того, реализован режим мультитенантности: права назначаются группам или конкретным пользователям, а ресурсы распределяются между командами. Можно автоматически применять заранее сконфигурированные сетевые политики, квоты и правила доступа.
Безопасность. В платформе есть встроенные инструменты сканирования образов на уязвимости, описанные в CVE и отечественных базах.
«В Deckhouse Kubernetes Platform есть кнопка, позволяющая просканировать приложение и информационную систему на наличие внешних уязвимостей перед проведением полноценного пентеста. Предварительное сканирование помогает излечить лежащие на поверхности проблемы, а пентестерам оставить уже более сложные кейсы, которые они будут обязаны вскрыть».
— Илья Попов, архитектор по разработке и внедрению IT-решений Linx.
Работа с сертификатами. Управление сертификатами (заказ, продление, обновление) автоматизировано благодаря модулю CertManager. Интеграция с Let’s Encrypt или внутренним центром сертификации позволяет быстро выпускать доверенные сертификаты. Их можно использовать для защиты внутреннего обмена даннымии для безопасного доступа по HTTPS. Есть возможность использовать собственные (самоподписанные) сертификаты.
Наблюдаемость. Данные системы мониторинга DKP могут храниться как краткосрочно для оперативного анализа, так и долгосрочно для изучения исторических тенденций. А еще мы переписываем движок Prometheus на C++, чтобы он стал потреблять меньше памяти по сравнению с «ванильной» версией.
Работа с логами. Логи из кластера могут отправляться согласно одной из топологий: распределенной, централизованной или потоковой. В первом случае специальные агенты шлют логи напрямую в хранилище, скажем, в Loki или Elasticsearch. Во втором — логи направляются в один из доступных агрегаторов, например, Logstash, Vector. Потоковая же архитектура подразумевает наличие очереди сообщений, откуда логи передаются в долгосрочное хранилище для дальнейшего анализа.
«Предположим, что вы делаете сервис, который работает по всей России: от Калининграда до Камчатки. В какой-то момент поступают жалобы от пользователей про деградацию или частичную недоступность сервиса. Когда нет системы мониторинга с сохранением логов, остается принять инцидент и ждать его повторения в надежде отловить его метриками или триггерами. Deckhouse позволяет сохранить логи за период и провести диагностику ретроспективно».
— Илья Попов, архитектор по разработке и внедрению IT-решений Linx
Отказоустойчивость. Для каждого клиента в облаке Linx разворачивается отдельный виртуальный дата-центр (VDC) с собственным кластером DKP. Такой подход гарантирует изоляцию и предсказуемую работу.

Возможности платформы позволяют использовать ServiceMesh на базе Istio для объединения несколько кластеров в федерацию. Это означает, что даже выход из строя целого кластера не приведет к остановке сервиса — трафик перенаправится на работоспособные узлы.
Главные элементы интерфейса
Веб-интерфейс упрощает управление DKP — наглядно представляет состояние системы. Доступ к нему открыт всем пользователям, но согласно уровню их прав на платформе.
На изображении ниже — главный экран клиентского кластера Kubernetes. Сверху представлены два информационных блока: версия Kubernetes и версия Deckhouse. Ниже размещена ссылка на кластерную документацию, которая соответствует установленной версии DKP. Все мы умеем пользоваться поисковыми системами, но гораздо приятнее получать информацию напрямую от вендора, который знает о своем продукте все и регулярно обновляет вики.

В правой части страницы отображен статус ключевых подсистем на интервале 15 минут. Там же перечислены основные узлы и уровень потребления ресурсов.
Управление обновлениями Deckhouse происходит из выделенного раздела. Можно выбрать канал обновлений DKP (Alpha —> Beta —> Early Access —> Stable —> Rock Solid) , настроить режим (ручной или автоматический), определить временные окна для апдейтов и подключить уведомления.

Менеджерам и специалистам техподдержки может быть интересна страница с актуальными статусами сервисов.

Можно подключить по API бота, который при сбое будет автоматически генерировать тикет и эскалировать проблему ответственному подразделению.
Также есть окно доступности компонентов.

Например, на изображении ниже отражены показатели для нашего тестового кластера за последние сутки.

Всплывающее окно сообщает о кратковременном падении доступности Control Plane продолжительностью одну секунду. В данном случае инцидент был связан с namespace, который был создан, но не удален.
Еще в DKP есть готовые конфигурации для Prometheus, сокращающие время настройки. Они основаны на двадцатилетнем опыте работы с инфраструктурой. При желании вы можете легко адаптировать конфигурации под свои задачи.
Платформа предлагает и предустановленные дашборды Grafana. Сейчас доступны метрики, которые можно использовать как основу для создания бизнес-аналитики. В числе готовых решений — дашборды для мониторинга основных ресурсов кластера.

Также DKP позволяет получить готовый kubeconfig для Linux, Windows или MacOS по нажатию одной кнопки.

Итоги
Kubernetes как сервис в облаке Linx на базе Deckhouse Kubernetes Platform позволяет инженерам сосредоточиться на разработке и запуске приложений, минимизируя время и усилия на настройку инфраструктуры. Готовые модули для аутентификации, ролевой модели, мониторинга, управления сертификатами и логирования обеспечивают надежность, безопасность и высокую отказоустойчивость.
Решение ускоряет вывод продуктов на рынок, упрощает управление кластерами и позволяет DevOps-командам использовать ресурсы более эффективно.