Компоненты 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).