Управление экземплярами сервиса#

Жизненный цикл экземпляра сервиса#

Жизненный цикл экземпляра сервиса включает состояния, отображенные на рисунке:

../../../../_images/service-flow_lcm.png

Краткие описания состояний сервиса приведены в таблице:

Состояние сервиса

Описание

PENDING

Исходное состояние сервиса. Сервис находится в этом состоянии, пока служба OneFlow не начнет процесс развертывания этого сервиса

DEPLOYING

Начался процесс развертывания каких-либо групп ВМ с заданной ролью

RUNNING

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

WARNING

Обнаружена ошибка при развертывании ВМ

SCALING

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

COOLDOWN

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

UNDEPLOYING

Начался процесс отмены развертывания каких-либо групп ВМ с заданной ролью

FAILED_DEPLOYING

Обнаружена ошибка при развертывании сервиса

FAILED_UNDEPLOYING

Обнаружена ошибка во время отмены развертывания сервиса

FAILED_SCALING

Обнаружена ошибка во время автоматического масштабирования сервиса

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

Состояние группы

Описание

PENDING

Ожидание начала процесса развертывания

DEPLOYING

Начался процесс развертывания ВМ. Группа ВМ с заданной ролью находится в этом состоянии, пока статус всех ВМ из состава группы не примет значение RUNNING

RUNNING

Статус всех ВМ из состава группы имеет значение RUNNING

WARNING

Обнаружена ошибка при развертывании ВМ

SCALING

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

COOLDOWN

Пауза между итерациями автоматического масштабирования группы

UNDEPLOYING

Начался процесс выключения каких-либо ВМ. Группа ВМ с заданной ролью находится в этом состоянии, пока статус всех ВМ из состава группы не примет значение DONE

FAILED_DEPLOYING

Обнаружена ошибка при развертывании ВМ из состава группы

FAILED_UNDEPLOYING

Обнаружена ошибка во время отмены развертывания ВМ из состава группы

FAILED_SCALING

Обнаружена ошибка во время автоматического масштабирования ВМ из состава группы

Управление экземплярами сервиса в интерфейсе командной строки#

Развертывание экземпляра сервиса#

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

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

Отображение развернутых сервисов#

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

oneflow list

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

ID USER            GROUP           NAME          STARTTIME          STATE
 1 oneadmin        oneadmin        my_service    10/28 17:42:46     PENDING

Кроме того, можно использовать команду oneflow top для непрерывного отображения развернутых сервисов.

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

oneflow show <идентификатор_сервиса>

Управление состоянием сервиса#

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

Команда

Описание

oneflow delete

Выключение сервиса. Эта команда запускает процесс корректного выключения всех развернутых экземпляров ВМ. Если в настройках сервиса указан тип развертывания straight, то процесс выключения групп ВМ с заданной ролью производится в обратном порядке

oneflow recover

Восстановление после сбоя. Используется для автоматического возобновления функционирования в штатном режиме

oneflow recover –delete

Принудительное удаление экземпляра сервиса. Используется, если в процессе удаления ВМ произошла ошибка

oneflow purge-done

Удаление всех сервисов, состояние которых имеет значение DONE

Добавление и удаление групп ВМ в экземпляре сервиса#

Предупреждение

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

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

oneflow add-role <идентификатор_сервиса> <файл_json>

где:

  • <идентификатор_сервиса> — идентификатор экземпляра сервиса;

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

Примечание

Пример

Файл role.json с параметрами группы ВМ:

{
    "name": "MASTER",
    "cardinality": 1,
    "vm_template": 0,
    "min_vms": 1,
    "max_vms": 2,
    "elasticity_policies": [],
    "scheduled_policies": []
}

Добавление группы ВМ в экземпляр сервиса с идентификатором 0:

oneflow add-role 0 role.json

После получения команды на добавление группы ВМ с заданной ролью в сервис, состояние этого сервиса примет значение DEPLOYING. Сервис находится в этом состоянии, пока статус необходимого количества ВМ из состава группы не примет значение RUNNING.

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

oneflow remove-role <идентификатор_сервиса> <наименование_группы>

После получения команды на удаление группы ВМ с заданной ролью из сервиса, состояние этого сервиса примет значение UNDEPLOYING. Сервис находится в этом состоянии до тех пор, пока все ВМ из состава группы не будут удалены. После этого состояние сервиса примет значение RUNNING.

Управление группой ВМ из состава экземпляра сервиса#

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

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

  • terminate;

  • terminate-hard;

  • undeploy;

  • undeploy-hard;

  • hold;

  • release;

  • stop;

  • suspend;

  • resume;

  • reboot;

  • reboot-hard;

  • poweroff;

  • poweroff-hard;

  • snapshot-create;

  • snapshot-revert;

  • snapshot-delete;

  • disk-snapshot-create;

  • disk-snapshot-revert;

  • disk-snapshot-delete.

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

  • -n или --number — количество ВМ с заданной ролью, которым будет одновременно направлена команда на изменение состояния за одну итерацию;

  • -p или --period — пауза (в секундах) между итерациями.

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

Примечание

Пример

Направить всем ВМ из состава группы с ролью my-role сервиса my-service команду на перезагрузку. При этом за одну итерацию команда на перезагрузку будет направлена только двум ВМ из состава группы. Пауза между итерациями составляет 300 секунд:

oneflow action my-service my-role reboot --period 300 --number 2

Управление экземплярами сервиса в веб-интерфейсе ПВ#

Развертывание экземпляра сервиса#

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

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

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

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

../../../../_images/service-instantiate_button.png
  1. На открывшейся странице Развернуть Шаблон Сервиса:

  • в поле Имя сервиса задать наименование сервиса;

  • указать количество экземпляров сервиса;

  • нажать кнопку Создать экземпляр:

../../../../_images/service-instantiate_new.png
  1. В меню слева выбрать пункт меню Экземпляры ВМ — Сервисы и дождаться пока в поле Состояние для созданного на предыдущем шаге сервиса значение РАЗВОРАЧИВАЕТСЯ не изменится на ЗАПУЩЕНО. Для обновления информации на странице можно воспользоваться кнопкой Обновить:

../../../../_images/service-instantiate_new-running.png

Отображение развернутых сервисов#

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

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

../../../../_images/service-instantiate_new-view.png

Управление состоянием сервиса#

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

  • Удалить — инициирует команду oneflow delete (выключение сервиса). Эта команда запускает процесс корректного выключения всех запущенных экземпляров ВМ. Если в настройках сервиса указан тип развертывания straight, то процесс выключения групп ВМ с заданной ролью производится в обратном порядке:

../../../../_images/service-button_delete.png
  • Восстановить — инициирует команду oneflow recover (восстановление после сбоя). Используется для автоматического возобновления функционирования в штатном режиме:

../../../../_images/service-button_recover.png
  • Восстановить - удалить — инициирует команду oneflow recover --delete (принудительное удаление экземпляра сервиса). Используется, если в процессе удаления ВМ произошла ошибка:

../../../../_images/service-button_recover_delete.png
  • Очистить — инициирует команду oneflow purge-done. Используется для удаления всех сервисов, состояние которых имеет значение DONE:

../../../../_images/service-button_purge_done.png

Управление группой ВМ из состава экземпляра сервиса#

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

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

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

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

../../../../_images/service-role-group_actions_buttons.png

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

  • Номер — количество ВМ с заданной ролью, которым будет одновременно направлена команда на изменение состояния за одну итерацию;

  • Период — пауза (в секундах) между итерациями.

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

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

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

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

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

  4. На странице Сервис во вкладке Роли в секции ВМ выбрать необходимую ВМ (допускается выбрать несколько ВМ). После этого станут доступны кнопки для управления состоянием группы ВМ:

../../../../_images/service-role-actions_buttons.png

Особенности восстановления после сбоя#

Некоторые ошибки, возникшие в процессе функционирования сервиса, могут быть устранены в автоматическом режиме с помощью команды oneflow recover. Последовательность автоматических действий при выполнении этой команды приведена в таблице:

Исходное состояние сервиса

Описание автоматических действий

Новое состояние сервиса

FAILED_DEPLOYING

ВМ, имеющие статус DONE или FAILED, уничтожаются. ВМ со статусом UNKNOWN развертываются

DEPLOYING

FAILED_UNDEPLOYING

Возобновляется процесс удаления сервиса

UNDEPLOYING

FAILED_SCALING

ВМ, имеющие статус DONE или FAILED, уничтожаются. ВМ со статусом UNKNOWN развертываются. Если в процессе автоматического масштабирования производилось уменьшение количества ВМ, то возобновляется действие по выключению заданных ВМ

SCALING

COOLDOWN

Пропуск паузы, немедленное возобновление функционирования

RUNNING