Оркестрация
Оркестрация в moncloud
В платформе moncloud поддерживается два независимых инструмента оркестрации: Heat и Michman. Heat отвечает за автоматическое выполнение всех взаимосвязанных операций, необходимых для корректной работы облачных сервисов, описанных на языке HOT.
Michman отвечает за создание экземпляров сервисов, описанных на открытом стандарте OASIS TOSCA. Аналогично Heat, Michman позволяет создавать все необходимые инфраструктурные ресурсы. Кроме того, Michman решает задачи настройки и поддержки распределённых систем.
Когда пользователь создает ресурс (например, VPN-сервер, инстанс или группу инстансов), система не ограничивается запуском одной сущности, а последовательно координирует все процессы, связанные с подготовкой инфраструктуры и развёртыванием сервисов.
Основные функции оркестрации
При работе с ресурсами Heat автоматически выполняет следующие действия:
Создание инфраструктурных ресурсов
Heat формирует связанные компоненты в правильном порядке:
сеть и подсеть;
маршрутизатор и необходимые порты;
тома и образы;
инстансы и связанные элементы.
Это обеспечивает корректную зависимость и порядок инициализации.
Настройка связей между компонентами
Система автоматически связывает созданные элементы:
подключает интерфейсы и диски;
назначает IP-адреса;
добавляет маршруты;
формирует зависимости между службами.
Развёртывание сервисов и служебных компонентов
После подготовки инфраструктуры Heat выполняет внутренние операции:
размещает сервисы внутри контейнеров или инстансов
(например, nova_virt*, glance_api, neutron_server);
устанавливает необходимые пакеты в операционную систему;
применяет конфигурационные файлы приложений и запускает службы;
настраивает сетевые правила и файрвол внутри гостовой ОС;
формирует кластерные соединения между инстансами при необходимости.
Автоматизация эксплуатационных операций
Heat также может выполнять действия, связанные с эксплуатацией и поддержкой сервисов:
создание и управление резервными копиями;
добавление и удаление узлов в кластерных сервисах;
выполнение миграций;
обновление ПО приложений и служебных компонентов.
При использовании оркестрации вы описываете все необходимые компоненты инфраструктуры (инстансы, сети, тома и другие ресурсы) в одном документе, а платформа выполняет их развёртывание и управление согласно этому описанию.
В разделе «Оркестрация» отображаются вкладки:
Стеки
Создание стека
Перейдите в Оркестрация > Стеки.
Нажмите кнопку Создать стек.
2. Добавьте шаблон: загрузите локальный файл YAML, или выберите готовый шаблон. Шаблон — это текстовый файл в формате YAML, в котором описаны все ресурсы и зависимости между ними, которые должны быть созданы в рамках оркестрации. Шаблон содержит несколько логических разделов:
Версия шаблона — указывает формат и возможности, которые доступны в описании.
Описание — человекочитаемая часть, поясняющая назначение шаблона.
Параметры — настраиваемые значения, передаваемые в шаблон (например, имена, образы, типы инстансов).
Ресурсы — фактически создаваемые объекты инстансы, сети, порты, тома).
Выходные данные — значения, которые платформа может вернуть после создания (например, адреса или имена ресурсов).
Добавьте переменную окружения - При использовании оркестрации шаблон развёртывания обычно описывается в виде фиксированного YAML-файла. Такой файл содержит структуру ресурсов и их взаимосвязи, но не должен меняться каждый раз при развёртывании. Однако в реальной ситуации часть значений — например, имена, пароли, типы ресурсов, IP-адреса, CIDR или размеры томов — может отличаться от развертывания к развертыванию.
Чтобы не менять сам шаблон, используется файл переменных окружения.
Что такое файл переменных окружения
Это отдельный YAML-файл, в котором задаются значения параметров, определённых в основном шаблоне.
Структура обычно такая:
- parameters:
vm_name: test-instance flavor: small network_id: 12345
Этот файл:
хранит изменяемые значения;
загружается вместе с шаблоном при создании стека;
позволяет переиспользовать один и тот же шаблон с разными параметрами.
Зачем он нужен
Использование файла переменных окружения позволяет:
Разделить неизменяемую часть и конфигурационные данные
Основной шаблон описывает только структуру инфраструктуры. Все вариативные значения вынесены отдельно и не требуют редактирования шаблона.
Упростить автоматизацию
Один и тот же шаблон можно применять в разных окружениях, подставляя соответствующие параметры:
тестовое,
стейджинговое,
продуктивное.
Меняется только файл переменных.
Избежать ошибок при правке шаблона
Чем меньше изменений в самом шаблоне, тем меньше риск нарушить зависимости ресурсов.
Повысить безопасность
Чувствительные данные (пароли, ключи, идентификаторы) можно хранить в файле переменных, а не в шаблоне, который часто хранится в репозитории.
Поддерживать несколько наборов параметров
Например:
env-dev.yaml env-stage.yaml env-prod.yaml
Все используют один и тот же шаблон, но создают разные инфраструктуры.
Как это работает
Шаблон объявляет параметры, например:
- parameters:
- instance_name:
type: string
- flavor:
type: string
Файл переменных окружения подставляет конкретные значения:
- parameters:
instance_name: demo-vm flavor: medium
При создании стека система объединяет шаблон и файл переменных. В результате шаблон остаётся универсальным, а значения — управляемыми.
Укажите имя стека
Введите время для тайм-аута
Укажите параметры:
Key Name - имя ключевой пары (Вычисления - Ключевые пары)
Image ID - ID образа (Вычисления - Образы)
Instance Type - тип инстанса (Вычисления - Инстансы)
network_name - имя сети (Сеть - Сети)
security_groups - имя группы безопасности (Вычисления - Группы безопасности)
Нажмите Подтвердить → система развернёт ресурсы, определённые в шаблоне, в правильном порядке и в соответствии с зависимостями.
После завершения запуска Система меняет статус кластера на «Запущен» и отображает кнопку для скачивания файла с конфигом для доступа к кластеру.
Нажмите кнопку скачивания файла, переместите его в нужную рабочую директорию на своём компьютере.
Редактирование имени и описания стека
При необходимости вы можете изменить имя и описание стека:
Перейдите в Оркестрация > Стеки.
Выберите нужный стек.
Нажмите действие Редактировать.
Введите новое имя и/или описание и подтвердите изменения.
Удаление стека
Чтобы удалить стек и все созданные им ресурсы:
Перейдите в Оркестрация > Стеки.
Отметьте нужный стек.
Выберите действие Удалить.
Подтвердите удаление — все ресурсы, связанные со стеком, будут уничтожены. Удаление является необратимым действием — после подтверждения восстановить удалённые ресурсы нельзя.
Включение стека
Если стек был создан, но не запущен (или находится в состоянии paused/ошибка), вы можете инициировать запуск:
Перейдите в Оркестрация > Стеки.
Выберите стек в списке.
Нажмите Запустить
Платформа выполнит запуск, создаст или приведёт ресурсы в состояние, заданное в шаблоне.