Per evitare di farsi carico di Google Cloud costi per un cluster inattivo, utilizza la funzionalità di eliminazione pianificata del cluster di Dataproc quando crei un cluster. Questa funzionalità offre opzioni per eliminare un cluster al verificarsi dei seguenti eventi:
- dopo un periodo di inattività del cluster specificato
- in un momento futuro specificato
- dopo un periodo di tempo specificato che inizia dal momento dell'invio della richiesta di creazione del cluster
Azioni che disattivano l'eliminazione pianificata
Mentre un cluster è in esecuzione, le seguenti azioni disabilitano l'eliminazione pianificata finché l'azione di disattivazione non viene annullata:
- Rimozione del ruolo Agente di servizio Dataproc nell'account di servizio Agente di servizio Dataproc
- Disattivazione dell'API Dataproc nel progetto cluster
- Abilitazione della protezione da eliminazione delle VM di Compute Engine su una VM del cluster di eliminazione pianificata
- Attivazione di Controlli di servizio VPC se l'account di servizio agente di servizio Dataproc (identità del control plane) non rientra nel perimetro
Calcolare il tempo di inattività del cluster
Puoi utilizzare l'eliminazione pianificata per eliminare un cluster dopo un determinato periodo di inattività. Il tempo di inattività viene calcolato dopo la creazione del cluster e il completamento del provisioning del cluster. Il calcolo del tempo di inattività inizia quando un cluster non ha job in esecuzione.
La dataproc:dataproc.cluster-ttl.consider-yarn-activity
proprietà del cluster
influisce sul calcolo del tempo di inattività del cluster nel seguente modo:
- Questa proprietà è attivata (impostata su
true
) per impostazione predefinita. - Quando questa proprietà è abilitata, sia l'attività dell'API YARN sia quella dell'API Dataproc Jobs deve essere inattiva per avviare e continuare a incrementare il calcolo del tempo di inattività del cluster.
- L'attività YARN include le applicazioni YARN in attesa e in esecuzione.
- L'attività dell'API Dataproc Jobs include i job in attesa e in esecuzione inviati all'API Dataproc Jobs.
- Quando questa proprietà è impostata su
false
, il calcolo del tempo di inattività del cluster inizia e continua solo quando l'attività dell'API Dataproc Jobs è inattiva.
La proprietà dataproc:dataproc.cluster-ttl.consider-yarn-activity
si applica
ai cluster creati con versioni delle immagini rilasciate a partire dal giorno 1.4.64
, 1.5.39
,
2.0.13
e alle versioni delle immagini successive. Per i cluster creati con versioni precedenti
dell'immagine, per il calcolo del tempo di inattività del cluster viene presa in considerazione solo l'attività dell'API Dataproc Jobs.
Utilizzare l'eliminazione pianificata dei cluster
Puoi impostare i valori di eliminazione pianificata quando crei un cluster utilizzando Google Cloud CLI, l'API Dataproc o la console. Google Cloud Dopo aver creato il cluster, puoi aggiornarlo per modificare o eliminare i valori di eliminazione pianificata impostati in precedenza sul cluster.
Interfaccia a riga di comando gcloud
Puoi creare o aggiornare i valori di eliminazione pianificata su un cluster passando i flag e i valori elencati nella tabella seguente ai comandi gcloud dataproc clusters create
o gcloud dataproc clusters update
.
Flag gcloud CLI | Descrizione | Granularità del valore | Valore min | Valore max |
---|---|---|---|---|
--delete-max-idle 1 |
Si applica ai comandi di creazione e aggiornamento del cluster.
Il periodo di tempo che intercorre tra il momento in cui il cluster diventa inattivo dopo la
creazione o l'aggiornamento e il momento in cui è pronto per l'uso e
il momento in cui inizia l'eliminazione. Fornisci la durata nel formato
IntegerUnit , dove l'unità può essere "s, m, h, d"
(secondi, minuti, ore, giorni). Esempio: "30m": 30 minuti dal momento
in cui il cluster diventa inattivo. |
1 secondo | 5 minuti | 14 giorni |
--no-delete-max-idle |
Si applica solo al comando di aggiornamento del cluster.
Annulla l'eliminazione del cluster in base all'impostazione del flag delete-max-idle
precedente. |
non applicabile | non applicabile | non applicabile |
--delete-expiration-time 2 |
Si applica ai comandi di creazione e aggiornamento del cluster. L'ora di inizio dell'eliminazione del cluster nel formato datetime ISO 8601. Per generare la data e l'ora nel formato corretto, puoi utilizzare il generatore di timestamp. Ad esempio, "2017-08-22T13:31:48-08:00" specifica un'ora di scadenza di 13:21:48 nel fuso orario UTC -8:00. | 1 secondo | 10 minuti dall'ora corrente | 14 giorni dall'ora corrente |
--delete-max-age 2 |
Si applica ai comandi di creazione e aggiornamento del cluster.
Il periodo di tempo che intercorre tra l'invio della richiesta di creazione del cluster e
il momento in cui il cluster inizia a essere eliminato. Fornisci la durata nel formato
IntegerUnit , dove l'unità può essere "s, m, h, d"
(secondi, minuti, ore, giorni). Esempi: "30m": 30 minuti da ora;
"1d": 1 giorno da ora. |
1 secondo | 10 minuti | 14 giorni |
--no-delete-max-age |
Si applica solo al comando di aggiornamento del cluster.
Annulla l'eliminazione automatica del cluster in base all'impostazione
del flag delete-max-age o delete-expiration-time precedente. |
Non applicabile | Non applicabile | Non applicabile |
- Puoi passare il flag
delete-max-idle
con il flagdelete-expiration-time
odelete-max-age
nella richiesta di creazione o aggiornamento del cluster. La prima condizione a diventare vera ha effetto per eliminare il cluster. - Puoi trasmettere il flag c
delete-expiration-time
o il flagdelete-max-age
al comando di creazione o aggiornamento del cluster, ma non entrambi.
Esempio di creazione del cluster:
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --delete-max-idle=DURATION \ --delete-expiration-time=TIME \ ... other flags ...
Esempio di aggiornamento del cluster:
gcloud dataproc clusters update CLUSTER_NAME \ --region=REGION \ --delete-max-idle=DURATION \ --no-delete-max-age \ ... other flags
API REST
Puoi creare o aggiornare i valori di eliminazione pianificata su un cluster impostando i campi e i valori ClusterLifecycleConfig dell'API Dataproc elencati nella tabella seguente nell'ambito di una richiesta API Dataproc cluster.create o cluster.patch.
Campo API | Descrizione | Granularità del valore | Valore min | Valore max |
---|---|---|---|---|
idleDeleteTtl 1 |
Si applica ai comandi di creazione e aggiornamento del cluster.
Il periodo di tempo che intercorre tra il momento in cui il cluster diventa inattivo dopo la
creazione o l'aggiornamento e il momento in cui è pronto per l'uso e
il momento in cui inizia l'eliminazione. Quando
aggiorni un cluster con un nuovo valore, questo deve essere maggiore del valore
impostato in precedenza.
Fornisci una durata in secondi con un massimo di nove cifre frazionarie, terminata da
"s". Esempio: "3.5s".
Invia una durata vuota per annullare un valore idleDeleteTtl impostato in precedenza. |
1 secondo | 5 minuti | 14 giorni |
autoDeleteTime 2 |
Si applica ai comandi di creazione e aggiornamento del cluster.
L'ora di inizio dell'eliminazione del cluster. Quando aggiorni un cluster con una nuova ora,
la nuova ora deve essere successiva a quella impostata in precedenza. Durante l'aggiornamento, se
viene impostato un valore vuoto per autoDeleteTime , l'eliminazione
automatica esistente viene annullata.Fornisci un timestamp in formato RFC 3339 UTC "Zulu", preciso al nanosecondo. Esempio: "2014-10-02T15:01:23.045123456Z". |
1 secondo | 10 minuti dall'ora corrente | 14 giorni dall'ora corrente |
autoDeleteTtl 2 |
La durata dal momento dell'invio della richiesta di creazione o aggiornamento del cluster
al momento in cui il cluster inizia a essere eliminato. Quando aggiorni un cluster,
la nuova durata dell'eliminazione pianificata (ora della richiesta di aggiornamento più la
nuova durata) deve essere successiva alla durata dell'eliminazione pianificata del cluster
impostata in precedenza. Invia un valore vuoto
per annullare un valore autoDeleteTtl impostato in precedenza.
Fornisci una durata in secondi con un massimo di nove cifre frazionarie, terminata da "s".
Esempio: "3.5s". |
1 secondo | 10 minuti | 14 giorni |
- Puoi impostare o aggiornare sia
idleDeleteTtl
siaautoDeleteTime
oautoDeleteTtl
nella richiesta di creazione o aggiornamento del cluster. La prima condizione a diventare vera ha effetto per eliminare il cluster. - Puoi impostare o aggiornare
autoDeleteTime
oautoDeleteTtl
nella richiesta, ma non entrambi.
Console
- Apri la pagina Crea un cluster di Dataproc.
- Seleziona il riquadro Personalizza cluster.
- Nella sezione Eliminazione pianificata, seleziona le opzioni da applicare al cluster.
Visualizzare le impostazioni del cluster di eliminazione pianificata
Interfaccia a riga di comando gcloud
Puoi utilizzare il comando gcloud dataproc clusters list
per
confermare che l'eliminazione pianificata di un cluster è abilitata.
gcloud dataproc clusters list \ --region=REGION
... NAME WORKER_COUNT ... SCHEDULED_DELETE CLUSTER_ID NUMBER ... enabled ...
Puoi utilizzare il comando gcloud dataproc clusters describe
per
controllare le impostazioni di eliminazione pianificata del cluster LifecycleConfig
.
gcloud dataproc clusters describe CLUSTER_NAME \ --region=REGION
... lifecycleConfig: autoDeleteTime: '2018-11-28T19:33:48.146Z' idleDeleteTtl: 1800s idleStartTime: '2018-11-28T18:33:48.146Z' ...
autoDeleteTime
e idleDeleteTtl
sono i valori di configurazione dell'eliminazione pianificata impostati sul cluster.
Dataproc genera il valore idleStartTime
, che è
l'ora di inizio di inattività più recente del cluster. Dataproc elimina il cluster se rimane inattivo per idleStartTime
+
idleDeleteTtl
.
API REST
Puoi inviare una richiesta clusters.list per verificare che l'eliminazione pianificata sia abilitata per un cluster.
Console
- Puoi visualizzare le impostazioni di eliminazione pianificata del cluster selezionando il nome del cluster dalla pagina Cluster di Dataproc nella console Google Cloud .
- Nella pagina dei dettagli dei cluster, seleziona la scheda Configurazione. Vai all'elenco delle configurazioni dei cluster per visualizzare le impostazioni di eliminazione pianificata.