使用排程事件
從 8.2.2 開始,CycleCloud 可以利用 VM 的排程事件 。 這項功能可讓您將腳本放在 VM 上,當其中一個支援的事件發生時會自動執行。
發生事件時叫用腳本
節點上的 Jetpack 代理程式會自動接聽事件。 發生時,它會在 Linux 上的腳本目錄中 /opt/cycle/jetpack/scripts
(, C:\cycle\jetpack\scripts
在 Windows) 上尋找名為 的腳本,以符合 事件。 如果找到腳本,則會執行腳本並延遲事件,直到腳本成功 (或事件逾時經過,Azure 會排程事件) 。 腳本成功結束之後,事件就會認可至 Azure,讓基礎動作 (例如重新開機) 可以立即發生。
注意
啟用監視時,CycleCloud 不會自動認可沒有腳本的事件,以確保重新開機之類的事件不會不必要的延遲。 如果您有另一個已經監視事件的自訂程式,則可以停用事件監視。 請注意,這表示 CycleCloud 不會收到 現成收回的通知。
排程事件監視預設為開啟狀態,但可以在節點或 nodearray 上設定下列專案來停用:
[[[configuration]]]
cyclecloud.monitor_scheduled_events = false
在版本 8 中新增的已淘汰設定 cyclecloud.monitor_spot_eviction
現在表示與 cyclecloud.monitor_scheduled_events
相同。
支援的事件
事件 | 描述 | Linux 腳本 | Windows 指令碼 |
---|---|---|---|
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
為 nodearray 上的 true。 這會針對為此 nodearray 建立的擴展集啟用它。 若要覆寫允許的逾時,您可以將 設定 TerminateNotificationTimeout
為新的時間。 例如,在叢集範本中:
[[nodearray execute]]
EnableTerminateNotification = true
TerminateNotificationTimeout = 10
若未 EnableTerminateNotification
設定為 true,擴展集 VM 將不會取得 Terminate 事件。