你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用计划事件
从 8.2.2 起,CycleCloud 可以利用 VM 的计划 事件 。 借助此功能,可以将脚本放在 VM 上,该脚本将在其中一个受支持的事件发生时自动执行。
事件发生时调用脚本
节点上的 Jetpack 代理会自动侦听事件。 出现这种情况时,它会在 Linux C:\cycle\jetpack\scripts
上的脚本目录 (/opt/cycle/jetpack/scripts
、Windows) 上查找一个名为与事件匹配的脚本。 如果找到脚本,它会执行该脚本并延迟事件,直到脚本成功 (或事件超时已过,Azure 将计划事件) 。 成功退出脚本后,事件会确认到 Azure,以便基础操作 (例如,可以立即重启) 。
注意
启用监视时,CycleCloud 不会自动确认没有脚本的事件,以确保不必要地延迟重新启动等事件。 如果你有另一个已监视事件的自定义进程,则可以禁用事件监视。 请注意,这意味着 CycleCloud 不会收到 现成逐出通知。
默认情况下,计划事件监视处于启用状态,但可以通过在节点或 nodearray 上设置以下内容来禁用它:
[[[configuration]]]
cyclecloud.monitor_scheduled_events = false
在版本 8 中添加的已弃用设置 cyclecloud.monitor_spot_eviction
现在与 cyclecloud.monitor_scheduled_events
版本 8 相同。
支持的事件
事件 | 说明 | Linux 脚本 | Windows Script |
---|---|---|---|
Preempt | 现成 VM 正在被逐出 | onPreempt.sh | onPreempt.bat |
Terminate | VM 计划 (可选) 删除 | onTerminate.sh | onTerminate.bat |
重新启动 | VM 计划重新启动 | onReboot.sh | onReboot.bat |
重新部署 | VM 计划移动到另一台主机 | onRedeploy.sh | onRedeploy.bat |
冻结 | VM 计划暂停几秒钟 | onFreeze.sh | onFreeze.bat |
终止通知
CycleCloud 支持在规模集 VM 上启用 终止通知 (,例如执行节点) 。 为此,请将节点数组设置为 EnableTerminateNotification
true。 这将为为此 nodearray 创建的规模集启用它。 若要替代允许的超时,可以设置为 TerminateNotificationTimeout
新时间。 例如,在群集模板中:
[[nodearray execute]]
EnableTerminateNotification = true
TerminateNotificationTimeout = 10
如果没有 EnableTerminateNotification
设置为 true,规模集 VM 将不会获取 Terminate 事件。