KubeSmart - Интеллектуальная система оркестрации Docker-контейнеров для PaaS

KubeSmart - Интеллектуальная система оркестрации Docker-контейнеров для PaaS

Назначение

KubeSmart предназначен для PaaS. Ключевые пользователи - провайдеры облачных услуг, крупные компании с масштабной Kubernetes-инфраструктурой. Представляет собой средства-надстройку над Kubernetes в виде K8S Custom Resource Definition (CRD) Анализирует взаимодействие микросервисов друг с другом и переразмещает их таким образом, чтобы добиться наилучших характеристик.

Преимущества

Расширенный мониторинг текущего состояния узлов и микросервисов Определение взаимосвязей микросервисов Визуальное отображение графиков взаимодействия для пользователя Динамическое управление размещением контейнеров на узлах для оптимизации ресурсов и повышения надежности. Результат — снижение затрат на хостинг для пользователей и хостинг-провайдеров на 10-15%.

Актуальность

Большинство современных облачных Platform as a Service (PaaS) систем построены на базе технологии контейнеризации приложений Docker. При этом серверное приложение (микросервис) «упаковывается» вместе со всеми своими зависимостями в Docker-контейнер, что упрощает его перенос с сервера на сервер. Сервера при этом работают в режиме кластера под управлением системы оркестрации контейнеров – Kubernetes (K8S). В состав K8S-кластера входит планировщик, который распределяет контейнеры по узлам кластера (серверам). Используемые в настоящее время планировщики не обладают интеллектуальными алгоритмами размещения контейнеров по узлам. Они работают по принципу размещения в «первый подходящий слот». KubeSmart учитывает схему взаимодействия размещаемых в облаке модулей между собой для выявления их взаимосвязей и более эффективного планирования использования аппаратных ресурсов облака с применением методов машинного обучения.

Технология

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

KubeSmart-1

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

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

KubeSmart-2

Модель кластеризации упакована в виде Kubernetes CronJob и развернута на экспериментальном кластере из 10 ARM-узлов k3s (представлен на рисунке).

KubeSmart-3

Сбор данных настроен с помощью фреймворка coroot eBPF, который собирает метрики производительности в Prometheus. Модель запускается периодически, считывает метрики о частоте взаимодействий между микросервисами в рамках определенного скользящего окна, кластеризует микросервисы и записывает данные о принадлежности микросервиса к определенному кластеру в PostgreSQL.

Планировщик разработан на Go как плагин для основного планировщика Kubernetes. Он считывает информацию о кластерах из базы данных и строит целевую картину размещения для конкретного размещаемого Pod. Решение принимается на основе того, сколько микросервисов, также принадлежащих этому кластеру, уже размещены на определенном узле. Также, чтобы сделать систему более «гибкой», разработан депланировщик, который удаляет Pod, который больше всего отклонялся от целевой схемы размещения, тем самым инициируя его повторное размещение.

KubeSmart-4

Применение умных алгоритмов планирования размещения контейнеров позволяет достичь повышения производительности минимум на 10% относительно Kubernetes-планирования по умолчанию.

Уровень готовности технологии

TRL 4: Разработан детальный макет решения для демонстрации работоспособности технологии