Компоненты Keystack

Admin UI

Доступ и получение часто используемых эндпоинтов
Через API можно посмотреть и получить часто используемые учетные данные (URL-адрес) входящих в инсталляцию сервисов (GitLab, Prometheus, Grafana, Vault, Nexus, Horizon, OpenSearch).
CRUD-операции
Реализовано подмножество CRUD-операций над основными пользовательскими ресурсами OpenStack, минимально необходимыми для администрирования нагрузки в регионе.
  • ВМ:

    • просмотр списка ВМ в регионе;

    • создание ВМ (необходим заранее созданный образ), а остальные ресурсы могут быть созданы во время создания ВМ);

    • изменение размера ВМ (изменение flavor);

    • включение, отключение сервисов DRS, HA для отдельной ВМ;

    • управление питанием ВМ;

    • сброс поля состояния ВМ (reset-state).

  • Диски:

    • просмотр списка дисков (volume) в регионе.

  • Порты:

    • просмотр списка портов в регионе;

  • Группы безопасности:

    • просмотр списка групп безопасности в регионе;

    • создание групп безопасности;

    • удаление групп безопасности;

    • редактирование групп безопасности путем удаления или добавления правил.

  • Сети:

    • просмотр списка сетей в регионе;

    • создание связки “роутер-сеть” (Create routable network — создание маршрутизируемой сети). В результате каждая новая сеть имеет свой роутер, подключенный к внешней сети. Внешнюю сеть необходимо выбрать при создании.

  • Роутеры:

    • просмотр списка роутеров в регионе.

  • Ключевые пары:

    • просмотр списка ключевых пар.

  • Гипервизоры:

    • просмотр списка гипервизоров в регионе;

    • возможность отключения и включения сервиса nova-compute на отдельных гипервизорах;

    • возможность живой эвакуации (host evacuate live).

Иерархический обзор и группировка ВМ
ВМ можно организовывать в иерархию виртуальных папок. Cписок ВМ при этом просматривается через структуру папок и их содержимого.
Режим Read-Only
Режим Read-Only позволяет просматривать информацию о системе без права внесения изменений в портал.
Интеграция с OpenSearch
Можно просматривать отчеты и данные, сохраненные в OpenSearch.
Интеграция с Grafana
Интеграция с Grafana позволяет проводить мониторинг данных Портала с помощью метрик и графиков, представленных в Grafana.
Мониторинг ресурсов
Наглядное отображение информации по имеющимся ресурсам (CPU & RAM) гипервизоров в виде Doughnut-графиков.
Получение OpenStack RC-файла
Есть возможность экспорта OpenStack RC-файла администратора.
Управление гипервизорами
Доступен просмотр списка гипервизоров с функциями фильтрации и управления (включение, отключение, миграция на другой гипервизор и получение детальной информации о каждом).
Создание ВМ
Можно вручную создавать новые ВМ и указывать для них все необходимые детали, такие как проект, гипервизор, сеть.
Управление дисками
Есть фильтрация и просмотр доступных дисков.
Управление группами безопасности
Доступно создание, редактирование и удаление групп безопасности для сетевых настроек. Для групп безопасности можно добавлять, менять и удалять правила.

Алертинг

Уведомление об отклонениях от заданных показателей

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

Драйверы Cinder

Компонент для управления хранилищем данных (Yadro и Huawei)

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

Dynamic Resource Scheduler (DRS)

Автоматическая разгрузка гипервизоров (Dynamic Resource Scheduler, DRS)
DRS периодически опрашивает Prometheus на предмет нагрузки гипервизоров в регионе и принимает решение о необходимости живой миграции ВМ с гипервизора, чья загрузка по CPU в среднем за последние “metric_resolution” минут превышает заданное значение “MOVE_SYN_THRESHOLD”.
Динамическая конфигурация параметров работы
Конфигурация алгоритма определения перегруженных гипервизоров и алгоритма выбора живой миграции задаются динамически в сущности “config” REST-API сервиса.
Динамическая конфигурация частоты опроса облака
Период опроса Prometheus для поиска перегруженных гипервизоров задается параметром “period” сущности “job” REST-API сервиса.
Логика ограничения выбора целевого гипервизора для живой миграции
DRS реализует логику фильтров OpenStack Nova при поиске разгружающих гипервизор живых миграций. Список включенных фильтров Nova задается статично в файле конфигурации.
Механизм исключения подмножества ресурсов региона из доступных для балансировки
DRS позволяет помечать следующие ВМ как недоступные для живой миграции:
  • конкретные ВМ (с помощью метаданных ВМ);

  • все ВМ проектов (с помощью метаданных проекта);

  • все ВМ с проброшенными PCI-устройствами.

Мониторинг и оповещения
DRS может оповещать Prometheus AlertManager о начале живой миграции ВМ.
Интеграция с Keystone
REST-API DRS использует авторизацию через Keystone региона Openstack.
Высокая доступность
DRS может запускаться в отказоустойчивом режиме “active-active”. Задачи по опросу и оптимизации облака выполняются на лидере кластера.
Множественные задачи
DRS поддерживает одновременное выполнение нескольких периодических заданий (jobs) с различными конфигурациями и периодами запуска.
Режим рекомендации миграций
Периодические задания по поиску перегруженных гипервизоров могут как выдавать рекомендации к живой миграции ВМ, так и применять их немедленно в автоматическом режиме. Рекомендации сохраняются и БД DRS и могут быть применены администратором в полуавтоматическом режиме через REST-API DRS.
Коммандлайн-клиент, предоставляющий удобный доступ из интерпретатора до сущностей REST-API DRS с использованием стандартного файла авторизации OpenRC
DRS CLI — управление и конфигурация подсистемы. Весь процесс сборки и интеграции автоматизирован с помощью GitLab-CI.

Horizon

Графическая оболочка плафтормы

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

Installer

Компонент Installer предназначен для развертывания компонента LCM. Инстяллятор развертывает следующие сервисы LCM:

  • Netbox

  • Vault

  • Nexus

  • GitLab

  • Web-сервис с информацией по инсталляции Nginx — обратный прокси для компонентов LCM

Функции, реализованные в Installer:

  • Выбор корневого имени домена для сервисов (например, если корневое имя домена — demo.local, то адрес GitLab будет ks-lcm.demo.local, у Nexus — nexus.demo.local, у Netbox — netbox.demo.local, а у Vault — vault.demo.local).

  • Генерация самоподписанный wildcard-сертификат для сервисов.

  • Reverse-proxy для сервисов LCM для обеспечения возможности HTTPS-шифрования трафика.

  • Выбор директории, в которой будут храниться данные и файлы конфигураций компонентов LCM.

  • Инсталлятор поставляется с архивом для offline-установки, который включает в себя:

    • архив с пакетами и их зависимостями, необходимыми для установки LCM-компонентов;

    • докер-образ Nexus;

    • докер-образ Nginx;

    • бандл со всеми необходимыми для деплоя OpenStack докер-образами и репозиториями, а также докер-образы для LCM.

  • Загрузка репозиториев в GitLab, реализующих функции автоматизированного управления инсталляциями KeyStack, и настройка необходимых переменных окружения.

  • Интеграция с Vault, хранилищем секретов.

  • Наполнение Vault данными для первичного деплоя — паролями и сертификатами.

Ironic

Bare metal как сервис

Доступно управление физическими серверами (либо другим аппаратным обеспечением), не абстрагированными или виртуализированными другими уровнями, такими как операционная система или гипервизор.

Life-Cycle Manager (LCM)

Компонент Life-Cycle Manager (LCM) предназначен для управления инсталляциями (экземплярами) KeyStack. LCM реализует следующие функции:

  • конфигурация регионов (инсталляции KeyStack) — хранение и управление;

  • предоставление доступа к конфигурационным файлам KeyStack, которые содержат общие настройки для всех регионов, отражающие лучшие практики внедрений OpenStack ITkey;

  • генерация паролей и SSL сертификатов для регионов;

  • установка операционной системы и конфигурация физических серверов для добавления в инсталляцию;

  • подготовка серверов к работе платформы KeyStack (bootstrap);

  • развертывание регионов KeyStack;

  • масштабирование регионов — добавление новых серверов с нужными ролями (control, compute, network);

  • добавление компонентов KeyStack в существующие регионы;

  • запуск автоматических тестов rally\tempest;

  • запуск кластера MariaDB после полной перезагрузки слоя управления регионом;

  • снятие резервных копий БД инсталляции OpenStack по расписанию;

  • снятие резервных копий компонентов LCM по расписанию;

  • управление логическим состоянием (наполнением) регионов — образы виртуальных машин (ВМ), типы инстансов, проекты, сети, агрегаты вычислительных узлов;

  • обновление компонентов инсталляций.

Мониторинг

Отслеживание, сбор и хранение метрик инфраструктуры

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

Аналитика

Доступна визуализация и анализ показателей здоровья облака. На основании собранных и визуализированных данных можно построить удобные дэшборды с анализом показателй состояния ресурсов инфраструктуры.

Nexus-offline

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

Vault

Аутентификация в Vault

Инсталлер автоматически настраивает доступ всех пайплайнов в Vault. Инсталлер генериргует первоначальные логин и пароль администратора в Vault.

Работа с данными в Vault

После аутентификации скрипты выполняют запросы к Vault для получения определенных данных, таких как конфигурация OpenStack (OpenRC) и сертификаты Octavia (octavia-certificates).