Управление шаблонами сервиса#

Параметры сервиса, задаваемые в шаблоне#

Для установки значений параметров шаблона сервиса используется формат JSON.

Общие параметры сервиса#

В общем случае для формирования шаблона сервиса необходимо определить значения параметров, приведенных в таблице:

Параметр

Тип данных

Обязательный

Описание

name

строка

Нет

Наименование сервиса

deployment

строка

Нет

Стратегия развертывания. Возможные значения:

  • none – все группы ВМ с заданной ролью разворачиваются одновременно (установлено по умолчанию);

  • straight – группа ВМ с заданной ролью разворачиваются только после запуска ВМ из вышестоящей группы с заданной ролью

shutdown_action

строка

Нет

Режим выключения ВМ. Может принимать следующие значения:

  • terminate (корректное завершение работы и удаление ВМ);

  • terminate-hard (принудительное завершение работы и удаление ВМ).

Если значение параметра не установлено, используется значение, установленное в конфигурационном файле /etc/one/oneflow-server.conf службы OneFlow

ready_status_gate

логический

Нет

Ожидать полного запуска ВМ, а именно:

  • служба управления ПВ (oned) для экземпляра ВМ установила следующие значения параметров:

    • LCM_STATE==3;

    • STATE>=3;

  • в пользовательском шаблоне экземпляра ВМ установлено следующее значение параметра READY=YES. Для изменения значений параметров в пользовательском шаблоне экземпляра ВМ используется служба сервера OneGate

custom_attrs

объект

Нет

Пользовательские параметры (неупорядоченный набор пар «параметр: значение»)

networks

объект

Нет

Параметры виртуальной сети (неупорядоченный набор пар «параметр: значение»)

roles

массив ролей

Да

Упорядоченная последовательность значений параметров группы ВМ с заданной ролью (см. ниже)

Параметры группы ВМ с заданной ролью#

Параметр

Тип данных

Обязательный

Описание

name

строка

Да

Наименование группы ВМ с заданной ролью

cardinality

число

Нет

Количество ВМ в группе (по умолчанию – одна)

vm_template

число

Да

Идентификатор шаблона для развертывания ВМ с заданной ролью

parents

массив строк

Нет

Перечень вышестоящих групп (имеющих приоритет при запуске)

shutdown_action

строка

Нет

Режим выключения ВМ. Может принимать следующие значения:

  • terminate (корректное завершение работы и удаление ВМ);

  • terminate-hard (принудительное завершение работы и удаление ВМ).

Если значение параметра не установлено, используется значение, установленное в общих параметрах сервиса

min_vms

число

Нет

(Да, если установлена политика эластичности)

Минимальное количество ВМ в группе. Параметр используется при автоматическом масштабировании сервиса в соответствии с заданными правилами (политикой эластичности)

max_vms

число

Нет

(Да, если установлена политика эластичности)

Максимальное количество ВМ в группе. Параметр используется при автоматическом масштабировании сервиса в соответствии с заданными правилами (политикой эластичности)

cooldown

число

Нет

Длительность паузы (в секундах) после выполнения автоматического масштабирования сервиса. Если значение параметра не установлено, используется значение, установленное в конфигурационном файле /etc/one/oneflow-server.conf службы OneFlow

elasticity_policies

массив политик

Нет

Упорядоченная последовательность значений параметров политики эластичности (см. ниже)

scheduled_policies

массив политик

Нет

Упорядоченная последовательность значений параметров политики планирования (см. ниже)

Параметры политики эластичности#

Для автоматической перенастройки сервиса в соответствии с заданными правилами (политикой эластичности) необходимо определить значения параметров, приведенных в таблице:

Параметр

Тип данных

Обязательный

Описание

type

строка

Да

Тип автоматического масштабирования. Может принимать следующие значения:

  • CHANGE – добавление/удаление заданного количества развернутых ВМ;

  • CARDINALITY – установка заданного размера группы (количества развернутых ВМ);

  • PERCENTAGE_CHANGE – добавление/удаление количества развернутых ВМ, заданного в процентном соотношении от текущего размера группы

adjust

число

Да

Шаг положительной/отрицательной корректировки или размер группы ВМ (в зависимости от типа автоматического масштабирования). В случае необходимости уменьшить количество развернутых ВМ, перед числом следует указать знак «-»

min_adjust_step

число

Нет

Необязательный параметр для автоматической настройки PERCENTAGE_CHAGE. Минимальный шаг положительной/отрицательной корректировки – наименьшее количество ВМ, на которое будет изменен размер группы

expression

строка

Да

Условие (логическое выражение) при котором необходимо применить политику эластичности

period_number

число

Нет

Количество периодов времени, на протяжении которых выполняется условие, указанное в параметре expression. Только по прошествии этого времени будет применена политика эластичности

period

число

Нет

Длительность периода (в секундах) – используется совместно с параметром period_number

cooldown

число

Нет

Длительность паузы (в секундах) после выполнения автоматического масштабирования сервиса. Если значение параметра не установлено, используется значение, установленное в параметров группы ВМ с заданной ролью (см. выше)

Параметры политики планирования#

Для автоматического масштабирования сервиса в соответствии с расписанием (политикой планирования) необходимо определить значения параметров, приведенных в таблице:

Параметр

Тип данных

Обязательный

Описание

type

строка

Да

Тип автоматической настройки. Может принимать следующие значения:

  • CHANGE – добавление/удаление заданного количества развернутых ВМ;

  • CARDINALITY – установка заданного размера группы (количества развернутых ВМ);

  • PERCENTAGE_CHANGE – добавление/удаление количества развернутых ВМ, заданного в процентном соотношении от текущего размера группы

adjust

число

Да

Шаг положительной/отрицательной корректировки или размер группы ВМ (в зависимости от типа автоматического масштабирования). В случае необходимости уменьшить количество развернутых ВМ, перед числом следует указать знак «-»

min_adjust_step

число

Нет

Необязательный параметр для автоматической настройки PERCENTAGE_CHAGE. Минимальный шаг положительной/отрицательной корректировки – наименьшее количество ВМ, на которое будет изменен размер группы

recurrence

строка

Нет

Расписание начала автоматического масштабирования (в формате команды cron)

start_time

строка

Нет

Точное время начала автоматического масштабирования

cooldown

число

Нет

Длительность паузы (в секундах) после выполнения автоматического масштабирования сервиса. Если значение параметра не установлено, используется значение, установленное в параметров группы ВМ с заданной ролью (см. выше)

Управление шаблонами сервиса в интерфейсе командной строки#

Создание шаблона#

Для создания шаблона сервиса необходимо использовать команду:

oneflow-template create <файл_json>

где <файл_json> — файл в формате JSON, в котором указаны значения параметров шаблона сервиса.

Примечание

Пример

Файл my_service.json с параметрами шаблона сервиса:

{
  "name": "my_service",
  "deployment": "straight",
  "ready_status_gate": true,
  "roles": [
    {
      "name": "frontend",
      "vm_template": 0
    },
    {
      "name": "db_master",
      "parents": [
        "frontend"
      ],
      "vm_template": 1
    },
    {
      "name": "db_slave",
      "parents": [
        "frontend"
      ],
      "cardinality": 3,
      "vm_template": 2
    },
    {
      "name": "worker",
      "parents": [
        "db_master",
        "db_slave"
      ],
      "cardinality": 10,
      "vm_template": 3
    }
  ]
}

Создание шаблона:

oneflow-template create my_service.json

Пример вывода после успешного выполнения команды:

ID: 0

Отображение доступных шаблонов и просмотр информации о шаблоне#

Для отображения шаблонов, доступных пользователю, необходимо использовать команду:

oneflow-template list

Пример вывода после выполнения команды:

ID USER     GROUP    NAME             REGTIME
 0 oneadmin brestadm my_service       05/22 13:38:5

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

oneflow-template show <идентификатор_шаблона>

Пример вывода после выполнения команды oneflow-template show 0:

SERVICE TEMPLATE 0 INFORMATION
ID                  : 0
NAME                : my_service
USER                : oneadmin
GROUP               : brestadmins
REGISTRATION TIME   : 05/22 13:38:59

PERMISSIONS
OWNER               : um-
GROUP               : ---
OTHER               : ---

TEMPLATE CONTENTS
{
  "name": "my_service",
  "deployment": "straight",
  "ready_status_gate": true,
  "roles": [
    {
      "name": "frontend",
      "vm_template": 0,
      "cardinality": 1
    },
    {
      "name": "db_master",
      "parents": [
        "frontend"
      ],
      "vm_template": 1,
      "cardinality": 1
    },
    {
      "name": "db_slave",
      "parents": [
        "frontend"
      ],
      "cardinality": 3,
      "vm_template": 2
    },
    {
      "name": "worker",
      "parents": [
        "db_master",
        "db_slave"
      ],
      "cardinality": 10,
      "vm_template": 3
    }
  ],
  "description": "",
  "registration_time": 1684751939
}

Изменение параметров шаблона#

Для изменения параметров шаблона необходимо использовать команду:

onetemplate update <идентификатор_шаблона>

После ввода команды откроется текстовый редактор для редактирования шаблона сервиса.

Клонирование шаблона#

Клонировать существующий шаблон возможно с помощью команды:

onetemplate clone <идентификатор_шаблона> <наименование_нового_шабона>

При использовании аргумента --recursive будут клонированы все шаблоны ВМ, перечисленные в шаблоне сервиса. При этом в новом шаблоне будут указаны клонированные шаблоны ВМ.

Удаление шаблона#

Для удаления шаблона необходимо выполнить команду:

oneflow-template delete <идентификатор_шаблона>

Также можно указать необходимость удаления шаблонов ВМ, перечисленных в шаблоне сервиса. Для этого в качестве аргументов команды необходимо указать следующие параметры:

  • --delete-vm-templates — для удаления всех шаблонов ВМ, перечисленных в шаблоне сервиса;

  • --delete-images — для удаления всех шаблонов ВМ, перечисленных в шаблоне сервиса, а также удаления всех образов дисков, указанных в шаблонах этих ВМ.

Управление шаблонами сервиса в веб-интерфейсе ПВ#

Создание шаблона#

Для того чтобы создать шаблон ВМ, в веб-интерфейсе ПВ необходимо выполнить следующие действия:

  1. В меню слева выбрать пункт меню Шаблоны — Сервисы.

  2. На открывшейся странице Шаблоны Сервисов нажать кнопку + и в открывшемся меню выбрать пункт Создать.

  3. На открывшейся странице Создать шаблон службы задать значения параметров шаблона одним из способов:

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

../../../../_images/service-template-new_add_master.png
  • во вкладке Расширенный указать непосредственно значения параметров в формате JSON.

  1. На странице Создать шаблон службы нажать кнопку Создать. После этого на открывшейся странице Шаблоны Сервисов отобразится созданный шаблон:

../../../../_images/service-template-new_added.png

Отображение доступных шаблонов и просмотр информации о шаблоне#

Для отображения шаблонов, доступных пользователю, в веб-интерфейсе ПВ необходимо в меню слева выбрать пункт меню Шаблоны — Сервисы. На открывшейся странице Шаблоны Сервисов будет отображена таблица шаблонов.

Для просмотра информации о конкретном шаблоне необходимо на странице Шаблоны Сервисов выбрать необходимый шаблон. После этого откроется страница шаблона (вкладка Сведения):

../../../../_images/service-template-view.png

Изменение параметров шаблона#

Чтобы изменить параметры шаблона, в веб-интерфейсе ПВ необходимо выполнить следующие действия:

  1. В меню слева выбрать пункт меню Шаблоны — Сервисы.

  2. На открывшейся странице Шаблоны Сервисов выбрать необходимый шаблон.

  3. На открывшейся странице Шаблон Сервиса нажать кнопку Обновить.

  4. На открывшейся странице **Изменить шаблон служб**ы внести необходимые изменения и нажать кнопку Обновить.

Клонирование шаблона#

Для клонирования шаблона в веб-интерфейсе ПВ необходимо выполнить следующие действия:

  1. В меню слева выбрать пункт меню Шаблоны — Сервисы.

  2. На открывшейся странице Шаблоны Сервисов выбрать необходимый шаблон.

  3. На открывшейся странице Шаблон Сервиса нажать кнопку Клонировать.

  4. На открывшейся странице Клонировать шаблон сервиса:

  • если необходимо клонировать все шаблоны ВМ, перечисленные в шаблоне сервиса, установить флаг Clone VM templates asssociated;

  • нажать кнопку Клонировать:

../../../../_images/service-template-clone.png

Удаление шаблона#

Для удаления шаблона в веб-интерфейсе ПВ необходимо выполнить следующие действия:

  1. В меню слева выбрать пункт меню Шаблоны — Сервисы.

  2. На открывшейся странице Шаблоны Сервисов отметить необходимые шаблоны и нажать на кнопку Удалить:

../../../../_images/service-template-delete_button.png
  1. В открывшемся окне Подтвердить нажать одну из кнопок:

  • Удалить — для удаления только шаблона сервиса;

  • Delete VM Templates — для удаления шаблона сервиса и всех шаблонов ВМ, перечисленных в шаблоне сервиса;

  • Delete Images and VM Templates — для удаления шаблона сервиса и всех шаблонов ВМ, перечисленных в шаблоне сервиса, а также удаления всех образов дисков, указанных в шаблонах этих ВМ:

../../../../_images/service-template-delete_confirm.png

Настройка автоматического удаления сервиса#

Экземпляры ВМ из состава сервиса могут быть удалены в соответствии с заданными правилами (политикой эластичности). В какой-то момент может оказаться, что в ПВ не запущено ни одной ВМ из состава сервиса, но сервис будет продолжать функционировать и потреблять вычислительные ресурсы ПВ. Чтобы избежать этого, можно настроить автоматическое удаление сервиса.

В интерфейсе командной строки#

Чтобы настроить автоматическое удаление сервиса, необходимо в шаблон сервиса добавить следующий параметр:

"automatic_deletion": true

В веб-интерфейсе ПВ#

Чтобы настроить автоматическое удаление сервиса, в веб-интерфейсе ПВ необходимо выполнить следующие действия:

  1. В меню слева выбрать пункт меню Шаблоны — Сервисы.

  2. На открывшейся странице Шаблоны Сервисов выбрать необходимый шаблон.

  3. На открывшейся странице Шаблон Сервиса нажать кнопку Обновить.

  4. На открывшейся странице Изменить шаблон службы во вкладке Мастер настройки в секции Расширенные параметры сервиса установить флаг Automatic deletion of service when all VMs terminated:

../../../../_images/service-template-automatic_deletion.png
  1. На странице Изменить шаблон службы нажать кнопку Обновить.