Utilizzo di eventi pianificati
A partire dalla versione 8.2.2, CycleCloud può sfruttare gli eventi pianificati per le macchine virtuali. Questa funzionalità consente di inserire uno script nella macchina virtuale che verrà eseguito automaticamente quando si verifica uno degli eventi supportati.
Richiamo di uno script quando si verificano eventi
L'agente Jetpack nel nodo rimane automaticamente in ascolto degli eventi. Quando si verifica un evento, cerca nella directory degli script (/opt/cycle/jetpack/scripts
in Linux, C:\cycle\jetpack\scripts
in Windows) uno script denominato in modo che corrisponda all'evento. Se trova uno script, lo esegue e rinvia l'evento fino a quando lo script non riesce (o il timeout dell'evento scade e Azure pianifica l'evento). Una volta terminato correttamente lo script, l'evento viene riconosciuto in Azure in modo che l'azione sottostante (ad esempio, un riavvio) possa verificarsi immediatamente.
Nota
Gli eventi per i quali non sono presenti script verranno riconosciuti automaticamente da CycleCloud quando il monitoraggio è abilitato, per garantire che gli eventi, ad esempio i riavvii, non vengano ritardati inutilmente. Se si dispone di un altro processo personalizzato che monitora già gli eventi, il monitoraggio degli eventi può essere disabilitato. Si noti che questo significa che CycleCloud non riceverà la notifica delle eliminazioni spot.
Il monitoraggio degli eventi pianificati è attivato per impostazione predefinita, ma può essere disabilitato impostando quanto segue in un nodo o in un nodearray:
[[[configuration]]]
cyclecloud.monitor_scheduled_events = false
L'impostazione cyclecloud.monitor_spot_eviction
deprecata , aggiunta nella versione 8, ora equivale a cyclecloud.monitor_scheduled_events
.
Eventi supportati
Event | Descrizione | Linux Script | Windows Script |
---|---|---|---|
Preempt | La macchina virtuale spot viene rimossa | onPreempt.sh | onPreempt.bat |
Terminate | La macchina virtuale è pianificata per essere eliminata (facoltativo) | onTerminate.sh | onTerminate.bat |
Riavvio | La macchina virtuale è pianificata per il riavvio | onReboot.sh | onReboot.bat |
Ripetere la distribuzione | La macchina virtuale è pianificata per lo spostamento in un altro host | onRedeploy.sh | onRedeploy.bat |
Freeze | La macchina virtuale è pianificata per essere sospesa per alcuni secondi | onFreeze.sh | onFreeze.bat |
Termina notifica
CycleCloud supporta l'abilitazione della notifica Terminate nelle macchine virtuali del set di scalabilità ,ad esempio nodi di esecuzione. A tale scopo, impostare su EnableTerminateNotification
true nell'oggetto nodearray. Verrà abilitata per i set di scalabilità creati per questo nodearray. Per eseguire l'override del timeout consentito, è possibile impostare TerminateNotificationTimeout
su una nuova ora. Ad esempio, in un modello di cluster:
[[nodearray execute]]
EnableTerminateNotification = true
TerminateNotificationTimeout = 10
Senza EnableTerminateNotification
impostare su true, le macchine virtuali del set di scalabilità non otterranno un evento Terminate.