Автоматическое масштабирование сервиса#

Особенности масштабирования сервиса#

Количество развернутых ВМ в группе с заданной ролью может быть изменено в ручном режиме, в автоматическом режиме в соответствии с заданными правилами или по расписанию.

После начала процесса масштабирования группа ВМ с заданной ролью и сервис будут переведены в состояние SCALING. Для достижения указанного размера группы ВМ с заданной ролью, в этой группе будут разворачиваться или уничтожаться ВМ. При этом для этой группы ВМ должны быть установлены значения максимального и минимального количества ВМ в группе.

После завершения процесса масштабирования группа ВМ с заданной ролью и сервис будут переведены в состояние COOLDOWN (пауза). Продолжительность паузы определяется в шаблоне сервиса. Затем группа ВМ с заданной ролью и сервис будут переведены в состояние RUNNING.

Изменение размера группы ВМ в ручном режиме#

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

Для изменения количества развернутых ВМ в группе с заданной ролью можно воспользоваться командой:

oneflow scale <идентификатор_сервиса> <наименование_роли> <необходимое_количество_ВМ>

Если необходимо установить такое количество развернутых ВМ, которое лежит вне диапазона максимального и минимального значений, заданных для группы ВМ, то следует использовать аргумент --force.

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

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

  1. В меню слева выбрать пункт меню Экземпляры ВМ — Сервисы.

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

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

../../../../_images/service-role-scaling_button.png
  1. В открывшемся окне Масштабировать:

  • указать необходимое количество ВМ, которое должно быть развернуто в группе с заданной ролью;

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

  • нажать кнопку Масштабировать:

../../../../_images/service-role-scaling_window.png

Настройка автоматического масштабирования#

Общие настройки автоматического масштабирования#

Значения параметров автоматического изменения размера группы ВМ с заданной ролью определяются в шаблоне сервиса. Как для политики эластичности, так и для политики планирования процесс автоматического масштабирования определяется параметрами, приведенными в таблице:

Параметр

Тип данных

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

Описание

type

строка

Да

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

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

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

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

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.

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

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

  1. В меню слева выбрать пункт меню Экземпляры ВМ — Сервисы.

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

  3. На открывшейся странице Сервис во вкладке Роли выбрать группу ВМ, установленные политики которой необходимо просмотреть, и пролистать страницу вниз.

  4. На странице Сервис во вкладке Роли:

  • в секции Стратегии масштабируемости отображены установленные политики эластичности;

  • в секции Запланированные стратегии отображены установленные политики планирования:

../../../../_images/service-role-scaling_view.png