Автоматическое масштабирование сервиса#
Особенности масштабирования сервиса#
Количество развернутых ВМ в группе с заданной ролью может быть изменено в ручном режиме, в автоматическом режиме в соответствии с заданными правилами или по расписанию.
После начала процесса масштабирования группа ВМ с заданной ролью и сервис будут переведены в состояние SCALING. Для достижения указанного размера группы ВМ с заданной ролью, в этой группе будут разворачиваться или уничтожаться ВМ. При этом для этой группы ВМ должны быть установлены значения максимального и минимального количества ВМ в группе.
После завершения процесса масштабирования группа ВМ с заданной ролью и сервис будут переведены в состояние COOLDOWN (пауза). Продолжительность паузы определяется в шаблоне сервиса. Затем группа ВМ с заданной ролью и сервис будут переведены в состояние RUNNING.
Изменение размера группы ВМ в ручном режиме#
В интерфейсе командной строки#
Для изменения количества развернутых ВМ в группе с заданной ролью можно воспользоваться командой:
oneflow scale <идентификатор_сервиса> <наименование_роли> <необходимое_количество_ВМ>
Если необходимо установить такое количество развернутых ВМ, которое лежит вне диапазона максимального и минимального значений, заданных для группы ВМ, то следует использовать аргумент --force
.
В веб-интерфейсе ПВ#
Для изменения количества развернутых ВМ в группе с заданной ролью в вебинтерфейсе ПВ необходимо выполнить следующие действия:
В меню слева выбрать пункт меню Экземпляры ВМ — Сервисы.
На открывшейся странице Сервисы выбрать необходимый сервис.
На открывшейся странице Сервис во вкладке Роли выбрать группу ВМ, размер которой необходимо изменить, и нажать на кнопку Масштабировать:

В открывшемся окне Масштабировать:
указать необходимое количество ВМ, которое должно быть развернуто в группе с заданной ролью;
если необходимо установить такое количество развернутых ВМ, которое лежит вне диапазона максимального и минимального значений, заданных для группы ВМ, то следует установить флаг Принудительно;
нажать кнопку Масштабировать:
![]()
Настройка автоматического масштабирования#
Общие настройки автоматического масштабирования#
Значения параметров автоматического изменения размера группы ВМ с заданной ролью определяются в шаблоне сервиса. Как для политики эластичности, так и для политики планирования процесс автоматического масштабирования определяется параметрами, приведенными в таблице:
Параметр |
Тип данных |
Обязательный |
Описание |
---|---|---|---|
type |
строка |
Да |
Тип автоматической настройки. Может принимать следующие значения:
|
adjust |
число |
Да |
Шаг положительной/отрицательной корректировки или размер группы ВМ (в зависимости от типа автоматической настройки). В случае необходимости уменьшить количество развернутых ВМ, перед числом следует указать знак «-» |
min_adjust_step |
число |
Нет |
Необязательный параметр для автоматической настройки PERCENTAGE_CHAGE. Минимальный шаг положительной/отрицательной корректировки – наименьшее количество ВМ, на которое будет изменен размер группы |
Настройка политики эластичности#
Политика эластичности — это правило, в соответствии с которым производится запуск автоматического масштабирования группы ВМ с заданной ролью. Массив политик эластичности размещается в шаблоне сервиса. Процесс автоматического масштабирования группы ВМ в соответствии с заданным правилом начинается при достижении определенного условия, заданного в параметре expression. Условие применения политики эластичности представляет собой логическое выражение, в котором указаны наименования параметров, числа и символы логических операций. В качестве операндов могут выступать:
значения параметров пользовательского шаблона экземпляра ВМ. Значения этих параметров могут быть установлены или изменены приложениями, функционирующими в ОС виртуальной машины. Для этого используется служба сервера OneGate;
значения параметров ВМ, предоставляемые драйвером виртуализации, такие как CPU, NETTX и NETRX.
Политика эластичности определяется параметрами, представленными в таблице:
Параметр |
Тип данных |
Обязательный |
Описание |
---|---|---|---|
expression |
строка |
Да |
Условие (логическое выражение) при котором необходимо применить политику эластичности |
period_number |
число |
Нет |
Количество периодов времени, на протяжении которых выполняется условие, указанное в параметре expression. Только по прошествии этого времени будет применена политика эластичности |
period |
число |
Нет |
Длительность периода (в секундах) — используется совместно с параметром period_number |
Примечание
Пример
Реализация масштабирования пользовательского сервиса:
в приложении, функционирующим в ОС виртуальной машины случае, для контроля нагрузки используется параметр с наименованием workload;
с помощью службы сервера OneGate значение этого параметра записывается в пользовательский шаблон экземпляра ВМ;
в шаблоне сервиса для группы ВМ с заданной ролью установлена следующая политика эластичности — если значение параметра workload больше 50 на протяжении 30 секунд (3 периода по 10 секунд), то необходимо дополнительно развернуть две ВМ:
"elasticity_policies" : [
{
"expression" : "workload > 50",
"period_number" : 3,
"period" : 10
"type" : "CHANGE",
"adjust" : 2,
},
...
]
Настройка политики планирования#
Политика планирования определяет расписание и/или периодичность повторения автоматического масштабирования группы ВМ с заданной ролью. Массив политик планирования размещается в шаблоне сервиса. Политика эластичности определяется параметрами, представленными в таблице:
Параметр |
Тип данных |
Обязательный |
Описание |
---|---|---|---|
recurrence |
строка |
Нет |
Расписание начала автоматического масштабирования (в формате команды cron) |
start_time |
строка |
Нет |
Точное время начала автоматического масштабирования |
При выполнении условия, заданного в политике планирования, начнется процесс автоматического масштабирования в соответствии с заданными значениями общих параметров.
Просмотр установленных политик автоматического масштабирования#
В интерфейсе командной строки#
Значения параметров установленных политик эластичности и планирования можно просмотреть, выполнив команду:
oneflow show <идентификатор_сервиса>
Пример вывода после выполнения команды:
SERVICE 4 INFORMATION
ID : 4
NAME : my_first_service
USER : brestadmin
GROUP : brestadmins
STRATEGY : straight
SERVICE STATE : RUNNING
START TIME : 05/24 13:53:54
...
ROLE worker
ROLE STATE : RUNNING
PARENTS : frontend
VM TEMPLATE : 0
CARDINALITY : 2
MIN VMS : 1
MAX VMS : 5
ROLE ELASTICITY
ADJUST EXPRESSION EVALS PERIOD COOL
+ 2 WORKLOAD[--] > 50 0/3 10s -
ROLE ELASTICITY SCHEDULE
ADJUST TIME
= 3 0 9 * * mon,tue,wed,thu,fri
...
где:
в информационном блоке
ROLE ELASTICITY
представлена политика эластичности для группы ВМ с наименованием worker;в информационном блоке
ROLE ELASTICITY SCHEDULE
представлена политика планирования для группы ВМ с наименованием worker.
В веб-интерфейсе ПВ#
Для просмотра значений параметров установленных политик эластичности и планирования, в веб-интерфейсе ПВ необходимо выполнить следующие действия:
В меню слева выбрать пункт меню Экземпляры ВМ — Сервисы.
На открывшейся странице Сервисы выбрать необходимый сервис.
На открывшейся странице Сервис во вкладке Роли выбрать группу ВМ, установленные политики которой необходимо просмотреть, и пролистать страницу вниз.
На странице Сервис во вкладке Роли:
в секции Стратегии масштабируемости отображены установленные политики эластичности;
в секции Запланированные стратегии отображены установленные политики планирования:
![]()