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

Для установки значений параметров шаблона сервиса используется формат 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
    }
  ]
}
CODE

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

oneflow-template create my_service.json
Пример вывода после успешного выполнения команды:

ID: 0
CODE

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

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

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

  ID USER     GROUP    NAME             REGTIME
   0 oneadmin brestadm my_service       05/22 13:38:5
CODE
Для просмотра полной информации о шаблоне необходимо использовать команду:

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
}
CODE

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

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

onetemplate update <идентификатор_шаблона>
После ввода команды откроется текстовый редактор для редактирования шаблона сервиса.

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

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

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

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

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

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

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

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

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

Для того чтобы создать шаблон ВМ, в веб-интерфейсе ПК СВ необходимо выполнить действия, описанные ниже.

  1. В меню слева выбрать пункт меню «Шаблоны — Сервисы».
  2. На открывшейся странице Шаблоны Сервисов нажать на кнопку [+] и в открывшемся меню выбрать пункт Создать.
  3. На открывшейся странице Создать шаблон службы создать шаблон одним из способов:
    • во вкладке Мастер настройки установить необходимые значения параметров. В том числе настроить роли виртуальных машин;
    • во вкладке Расширенный указать непосредственно значения параметров в формате JSON.
  4. На странице Создать шаблон Службы нажать на кнопку [Создать]. После этого на открывшейся странице Шаблоны Сервисов отобразится созданный шаблон.

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

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

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

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

Чтобы изменить параметры шаблона, в веб-интерфейсе ПК СВ необходимо выполнить действия, описанные ниже.

  1. В меню слева выбрать пункт меню «Шаблоны — Сервисы».
  2. На открывшейся странице Шаблоны Сервисов выбрать необходимый шаблон.
  3. На открывшейся странице Шаблон Сервиса нажать на кнопку [Обновить].

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

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

Для клонирования шаблона, в веб-интерфейсе ПК СВ необходимо выполнить действия, описанные ниже.

  1. В меню слева выбрать пункт меню «Шаблоны — Сервисы».
  2. На открывшейся странице Шаблоны Сервисов выбрать необходимый шаблон.
  3. На открывшейся странице Шаблон Сервиса нажать на кнопку [Клонировать].

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

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


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

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

  1. В меню слева выбрать пункт меню «Шаблоны — Сервисы».
  2. На открывшейся странице Шаблоны Сервисов отметить необходимые шаблоны и нажать на кнопку [Удалить].
  3.  В открывшемся окне Подтвердить нажать на одну из кнопок:
    • [Удалить] – для удаления только шаблона сервиса;
    • [Delete VM Templates] – для удаления шаблона сервиса и всех шаблонов ВМ, перечисленных в шаблоне сервиса;
    • [Delete Images and VM Templates] – для удаления шаблона сервиса и всех шаблонов ВМ, перечисленных в шаблоне сервиса, а также удаления всех образов дисков, указанных в шаблонах этих ВМ.

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

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

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

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

"automatic_deletion": true
CODE

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

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

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

  1. В меню слева выбрать пункт меню «Шаблоны — Сервисы».
  2. На открывшейся странице Шаблоны Сервисов выбрать необходимый шаблон.
  3. На открывшейся странице Шаблон Сервиса нажать на кнопку [Обновить].

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

    • установить флаг Automatic deletion of service when all VMs terminated;

    • нажать на кнопку [Обновить].