Использование запланированных событий

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

Вызов скрипта при возникновении событий

Агент Jetpack на узле автоматически прослушивает события. При его возникновении он ищет в каталоге сценариев (/opt/cycle/jetpack/scripts в Linux, C:\cycle\jetpack\scripts в Windows) сценарий, именованный для сопоставления события. Если он находит скрипт, он выполняет его и откладывает событие до тех пор, пока скрипт не будет успешно (или время ожидания события истекает, и Azure планирует событие). После успешного завершения сценария событие будет подтверждено в Azure, чтобы базовое действие (например, перезагрузка) произошла немедленно.

Примечание

События, для которых скрипты не будут автоматически подтверждены CycleCloud при включении мониторинга, чтобы гарантировать, что такие события, как перезагрузки, не являются ненужными задержками. Если у вас есть другой пользовательский процесс, который уже отслеживает события, можно отключить мониторинг событий. Обратите внимание, что это означает, что CycleCloud не получит уведомление о точечных вытеснениях.

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

[[[configuration]]]
cyclecloud.monitor_scheduled_events = false

Устаревший параметр cyclecloud.monitor_spot_eviction, добавленный в версии 8, теперь означает то же, что cyclecloud.monitor_scheduled_eventsи .

Поддерживаемые события

Событие Описание Сценарий Linux Windows Script
Выгрузка Точечные виртуальные машины вытеснили onPreempt.sh onPreempt.bat
Завершение Виртуальная машина планируется удалить (необязательно) onTerminate.sh onTerminate.bat
Перезагрузка Запланирована перезагрузка виртуальной машины onReboot.sh onReboot.bat
Повторное развертывание Виртуальная машина планируется переместиться на другой узел. onRedeploy.sh onRedeploy.bat
Freeze Виртуальная машина планируется приостановить в течение нескольких секунд. onFreeze.sh onFreeze.bat

Уведомление о завершении

CycleCloud поддерживает включение уведомления о завершении работы на виртуальных машинах масштабируемого набора (например, выполнение узлов). Для этого задайте EnableTerminateNotification значение true в nodearray. Это позволит включить его для масштабируемых наборов, созданных для этого nodearray. Чтобы переопределить допустимое время ожидания, можно задать TerminateNotificationTimeout новое время. Например, в шаблоне кластера:

[[nodearray execute]]
EnableTerminateNotification = true
TerminateNotificationTimeout = 10

Если EnableTerminateNotification задано значение true, виртуальные машины масштабируемого набора не получат событие Terminate.