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

Краткие описания состояний сервиса приведены в таблице:
Состояние сервиса |
Описание |
---|---|
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
Управление экземплярами сервиса в веб-интерфейсе ПВ#
Развертывание экземпляра сервиса#
Для того чтобы развернуть сервис из шаблона, в веб-интерфейсе ПВ необходимо выполнить следующие действия:
В меню слева выбрать пункт меню Шаблоны — Сервисы.
На открывшейся странице Шаблоны Сервисов выбрать необходимый шаблон.
На открывшейся странице Шаблон Сервиса нажать кнопку + и в открывшемся меню выбрать пункт Создать ВМ:

На открывшейся странице Развернуть Шаблон Сервиса:
в поле Имя сервиса задать наименование сервиса;
указать количество экземпляров сервиса;
нажать кнопку Создать экземпляр:
![]()
В меню слева выбрать пункт меню Экземпляры ВМ — Сервисы и дождаться пока в поле Состояние для созданного на предыдущем шаге сервиса значение РАЗВОРАЧИВАЕТСЯ не изменится на ЗАПУЩЕНО. Для обновления информации на странице можно воспользоваться кнопкой Обновить:

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

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

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

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

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

Управление группой ВМ из состава экземпляра сервиса#
Для управления состоянием всех ВМ из состава группы ВМ с заданной ролью в веб-интерфейсе ПВ необходимо выполнить следующие действия:
В меню слева выбрать пункт меню Экземпляры ВМ — Сервисы.
На открывшейся странице Сервисы выбрать необходимый сервис.
На открывшейся странице Сервис во вкладке Роли выбрать группу ВМ, состояние которой необходимо изменить. После этого станут доступны кнопки для управления состоянием группы ВМ:

Также можно указать, что заданное в команде действие применялось не одновременно ко всем ВМ из состава группы, а поочередно в отношении одной или нескольких ВМ. Для этого используются следующие поля для ввода:
Номер — количество ВМ с заданной ролью, которым будет одновременно направлена команда на изменение состояния за одну итерацию;
Период — пауза (в секундах) между итерациями.
Если значения параметров Номер и Период не указаны, то используются соответственно значения параметров :action_number
и :action_perio``d, заданные в конфигурационном файле ``/etc/one/oneflow-server.conf
службы OneFlow.
Для управления состоянием конкретной ВМ из состава группы ВМ с заданной ролью в веб-интерфейсе ПВ необходимо выполнить следующие действия:
В меню слева выбрать пункт меню Экземпляры ВМ — Сервисы.
На открывшейся странице Сервисы выбрать необходимый сервис.
На открывшейся странице Сервис во вкладке Роли выбрать группу ВМ, состояние которой необходимо изменить, и пролистать страницу вниз.
На странице Сервис во вкладке Роли в секции ВМ выбрать необходимую ВМ (допускается выбрать несколько ВМ). После этого станут доступны кнопки для управления состоянием группы ВМ:

Особенности восстановления после сбоя#
Некоторые ошибки, возникшие в процессе функционирования сервиса, могут быть устранены в автоматическом режиме с помощью команды oneflow recover
. Последовательность автоматических действий при выполнении этой команды приведена в таблице:
Исходное состояние сервиса |
Описание автоматических действий |
Новое состояние сервиса |
---|---|---|
FAILED_DEPLOYING |
ВМ, имеющие статус DONE или FAILED, уничтожаются. ВМ со статусом UNKNOWN развертываются |
DEPLOYING |
FAILED_UNDEPLOYING |
Возобновляется процесс удаления сервиса |
UNDEPLOYING |
FAILED_SCALING |
ВМ, имеющие статус DONE или FAILED, уничтожаются. ВМ со статусом UNKNOWN развертываются. Если в процессе автоматического масштабирования производилось уменьшение количества ВМ, то возобновляется действие по выключению заданных ВМ |
SCALING |
COOLDOWN |
Пропуск паузы, немедленное возобновление функционирования |
RUNNING |