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

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

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

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

Параметр

Тип данных

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

Описание

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

массив ролей

Да

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

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

Параметр

Тип данных

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

Описание

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

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

Нет

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

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

Параметр

Тип данных

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

Описание

type

строка

Да

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

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

adjust

число

Да

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

min_adjust_step

число

Нет

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

expression

строка

Да

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

period_number

число

Нет

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

period

число

Нет

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

cooldown

число

Нет

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

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

Параметр

Тип данных

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

Описание

type

строка

Да

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

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

adjust

число

Да

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

min_adjust_step

число

Нет

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

recurrence

строка

Нет

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

start_time

строка

Нет

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

cooldown

число

Нет

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

"automatic_deletion": true
CODE

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

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

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

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

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

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

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