スケジュールされたイベントの使用
8.2.2 の時点で、CycleCloud は VM の スケジュールされたイベント を利用できます。 この機能を使用すると、サポートされているイベントのいずれかが発生したときに自動的に実行されるスクリプトを VM に配置できます。
イベント発生時のスクリプトの呼び出し
ノード上の Jetpack エージェントは、イベントを自動的にリッスンします。 発生すると、イベントと一致するように名前が付けられたスクリプトが scripts ディレクトリ (/opt/cycle/jetpack/scripts
Linux、 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
同じになります。
サポートされるイベント
Event | 説明 | Linux スクリプト | Windows スクリプト |
---|---|---|---|
Preempt | スポット VM が削除されています | onPreempt.sh | onPreempt.bat |
Terminate | VM が削除されるようにスケジュールされている (省略可能) | onTerminate.sh | onTerminate.bat |
再起動 | VM の再起動がスケジュールされている | onReboot.sh | onReboot.bat |
Redeploy | VM が別のホストに移動するようにスケジュールされている | onRedeploy.sh | onRedeploy.bat |
Freeze | VM は数秒間一時停止するようにスケジュールされています | onFreeze.sh | onFreeze.bat |
終了通知
CycleCloud では、スケールセット VM (例: ノードの実行) で 終了通知 を有効にできます。 これを行うには、nodearray で true に設定 EnableTerminateNotification
します。 これにより、この nodearray 用に作成されたスケールセットに対して有効になります。 許可されたタイムアウトをオーバーライドするには、新しい時刻を設定 TerminateNotificationTimeout
できます。 たとえば、クラスター テンプレートでは次のようになります。
[[nodearray execute]]
EnableTerminateNotification = true
TerminateNotificationTimeout = 10
true に設定しないと EnableTerminateNotification
、スケールセット VM は Terminate イベントを受け取りません。