Vai al contenuto

Terminazione e preavviso

Una Spot Instance è per definizione un'istanza effimera: può essere revocata in qualsiasi momento. La revoca (detta reclaim) non è però immediata — l'istanza riceve prima un preavviso, e solo allo scadere viene terminata.

Il preavviso di 2 minuti

Quando una spot viene selezionata per il reclaim:

  1. Lo stato dell'istanza passa a terminating e viene inviata una email di preavviso al proprietario del server.
  2. Parte un countdown di 120 secondi: il momento di terminazione è fissato a terminate_at = notified_at + 2 minuti.
  3. Allo scadere del countdown l'istanza viene terminata e lo stato diventa terminated.

Questi due minuti servono a permettere al workload di chiudersi in modo ordinato — salvare un checkpoint, drenare le connessioni, riaccodare il lavoro in corso.

Oltre all'email, il preavviso è rilevabile a livello programmatico: interrogando GET /api/v2/servers/<servername>/spot-status lo stato passa a terminating e i campi notified_at / terminate_at indicano rispettivamente l'istante del preavviso e il momento esatto di terminazione. L'endpoint può essere interrogato in polling per reagire automaticamente al reclaim.

Il reclaim è irreversibile

Una volta che l'istanza è entrata in terminating, non torna più attiva: non esiste una transizione da terminating a ok. Per questo le Spot Instances vanno usate solo per workload progettati per essere interrompibili (checkpoint periodici, code di lavoro con retry, worker ridondati).

Stati di una Spot Instance

Stato Significato
ok Attiva e reclamabile. È lo stato iniziale dopo la creazione.
terminating Preavviso inviato: la terminazione è schedulata entro 2 minuti. Non reversibile.
terminated Terminata, per reclaim completato oppure per cancellazione da parte dell'utente.
promoted Promossa a on-demand: non più soggetta a reclaim.

Il record di stato sopravvive alla terminazione del server: lo stato resta interrogabile via GET .../spot-status anche dopo che l'istanza è stata terminata.

Come evitare la terminazione

Finché lo stato è ok, è possibile promuovere l'istanza a on-demand: la risorsa viene bloccata e l'istanza esce definitivamente dal pool reclamabile. Attenzione però al tempismo — una volta partito il preavviso (terminating) non è più possibile promuovere.

Verificare lo stato