Pour éviter les fraisGoogle Cloud liés à un cluster inactif, utilisez la fonctionnalité de suppression planifiée de cluster Dataproc lorsque vous créez un tel cluster. Cette fonctionnalité permet de supprimer un cluster lorsque les événements suivants se produisent :
- après une période d'inactivité spécifiée du cluster ;
- à une heure spécifiée ;
- après une période spécifiée commençant à partir de la soumission de la requête de création du cluster.
Actions qui désactivent la suppression planifiée
Lorsqu'un cluster est en cours d'exécution, les actions suivantes désactivent la suppression planifiée jusqu'à ce que l'action de désactivation soit annulée :
- Suppression du rôle d'agent de service Dataproc IAM sur le compte de service de l'agent de service Dataproc
- Désactivation de l'API Dataproc dans le projet de cluster
- Activation de la protection contre la suppression des VM Compute Engine sur une VM de cluster avec suppression planifiée
- Activation de VPC-Service Controls si le compte de service de l'agent de service Dataproc (identité du plan de contrôle) ne se trouve pas dans les limites du périmètre
Calculer le temps d'inactivité d'un cluster
Vous pouvez utiliser la suppression planifiée pour supprimer un cluster après une période d'inactivité spécifiée. Le temps d'inactivité est calculé une fois le cluster créé et son provisionnement terminé. Le calcul du temps d'inactivité commence lorsqu'un cluster n'exécute aucune tâche.
La propriété de cluster dataproc:dataproc.cluster-ttl.consider-yarn-activity
affecte le calcul du temps d'inactivité du cluster comme suit :
- Cette propriété est activée (définie sur
true
) par défaut. - Lorsque cette propriété est activée, l'activité YARN et celle de l'API Dataproc Jobs doivent être inactives pour que le calcul du temps d'inactivité du cluster puisse commencer et se poursuivre.
- L'activité YARN inclut les applications YARN en attente et en cours d'exécution.
- L'activité de l'API Jobs Dataproc inclut les tâches en attente et en cours d'exécution envoyées à l'API Jobs Dataproc.
- Lorsque cette propriété est définie sur
false
, le calcul du temps d'inactivité du cluster ne démarre et ne se poursuit que lorsque l'activité de l'API Jobs de Dataproc est inactive.
La propriété dataproc:dataproc.cluster-ttl.consider-yarn-activity
s'applique aux clusters créés avec des versions d'image publiées le 1.4.64
, le 1.5.39
, le 2.0.13
ou après. Pour les clusters créés avec des versions d'image antérieures, seule l'activité de l'API Dataproc Jobs est prise en compte dans le calcul du temps d'inactivité du cluster.
Utiliser la suppression planifiée du cluster
Vous pouvez définir des valeurs de suppression planifiée lorsque vous créez un cluster à l'aide de la console, de l'API Dataproc ou de la Google Cloud CLI Google Cloud . Une fois le cluster créé, vous pouvez le mettre à jour pour modifier ou supprimer les valeurs de suppression planifiée précédemment définies.
CLI gcloud
Vous pouvez créer ou mettre à jour les valeurs de suppression planifiée sur un cluster en transmettant les indicateurs et les valeurs listés dans le tableau suivant aux commandes gcloud dataproc clusters create
ou gcloud dataproc clusters update
.
Option de gcloud CLI | Description | Précision de la valeur | Valeur minimale | Valeur maximale |
---|---|---|---|---|
--delete-max-idle 1 |
S'applique aux commandes de création et de mise à jour des clusters.
Durée entre le moment où le cluster devient inactif après sa création ou sa mise à jour et le moment où il commence à être supprimé. Indiquez la durée au format IntegerUnit , où l'unité peut être "s, m, h, d" (respectivement : secondes, minutes, heures, jours). Exemple : "30m" (30 minutes après le moment où le cluster devient inactif). |
1 seconde | 5 minutes | 14 jours |
--no-delete-max-idle |
S'applique uniquement à la commande de mise à jour du cluster.
Annule la suppression du cluster en fonction du paramètre d'indicateur delete-max-idle précédent. |
Non applicable | Non applicable | Non applicable |
--delete-expiration-time 2 |
S'applique aux commandes de création et de mise à jour des clusters. Heure de début de la suppression du cluster au format date/heure ISO 8601. Pour générer la date et l'heure au format correct, vous pouvez utiliser le générateur d'horodatage. Par exemple, "2017-08-22T13:31:48-08:00" définit l'heure d'expiration sur 13:21:48 dans le fuseau horaire UTC -8:00. | 1 seconde | 10 minutes à partir de l'heure actuelle | 14 jours à partir de l'heure actuelle |
--delete-max-age 2 |
S'applique aux commandes de création et de mise à jour des clusters.
Durée entre la soumission de la requête de création du cluster et le moment où le cluster commence à être supprimé. Indiquez la durée au format IntegerUnit , où l'unité peut être "s, m, h, d" (respectivement : secondes, minutes, heures, jours). Exemples : "30m" (30 minutes à partir de maintenant) ; "1d" (1 jour à partir de maintenant). |
1 seconde | 10 minutes | 14 jours |
--no-delete-max-age |
S'applique uniquement à la commande de mise à jour du cluster.
Annule la suppression automatique du cluster en fonction du paramètre d'indicateur delete-max-age ou delete-expiration-time précédent. |
Non applicable | Non applicable | Non applicable |
- Vous pouvez transmettre l'option
delete-max-idle
avec l'optiondelete-expiration-time
oudelete-max-age
dans votre requête de création ou de mise à jour de cluster. La première option dont les paramètres sont remplis prend effet pour supprimer le cluster. - Vous pouvez transmettre l'option
delete-expiration-time
ou l'optiondelete-max-age
à la commande de création ou de mise à jour de cluster, mais pas les deux.
Exemple de création de cluster :
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --delete-max-idle=DURATION \ --delete-expiration-time=TIME \ ... other flags ...
Exemple de mise à jour de cluster :
gcloud dataproc clusters update CLUSTER_NAME \ --region=REGION \ --delete-max-idle=DURATION \ --no-delete-max-age \ ... other flags
API REST
Vous pouvez créer ou mettre à jour les valeurs de suppression planifiée d'un cluster en définissant les champs et les valeurs ClusterLifecycleConfig de l'API Dataproc listés dans le tableau suivant dans le cadre d'une requête d'API cluster.create ou cluster.patch de Dataproc.
Champ de l'API | Description | Précision de la valeur | Valeur minimale | Valeur maximale |
---|---|---|---|---|
idleDeleteTtl 1 |
S'applique aux commandes de création et de mise à jour des clusters.
Durée entre le moment où le cluster devient inactif après sa création ou sa mise à jour et le moment où il commence à être supprimé. Lorsque vous mettez à jour un cluster avec une nouvelle valeur, celle-ci doit être supérieure à la valeur précédemment définie.
Indiquez une durée en secondes avec un maximum de neuf chiffres après la virgule. Se termine par "s". Exemple : "3.5s".
Envoyez une durée vide pour annuler une valeur idleDeleteTtl précédemment définie. |
1 seconde | 5 minutes | 14 jours |
autoDeleteTime 2 |
S'applique aux commandes de création et de mise à jour des clusters.
Heure de début de la suppression du cluster. Lorsque vous mettez à jour un cluster avec une nouvelle heure, celle-ci doit être postérieure à l'heure définie précédemment. Lors de la mise à jour, si une valeur vide est définie pour autoDeleteTime , la suppression automatique existante est annulée.Fournissez un horodatage au format RFC 3339 UTC "Zulu", précis à la nanoseconde près. Exemple : "2014-10-02T15:01:23.045123456Z". |
1 seconde | 10 minutes à partir de l'heure actuelle | 14 jours à partir de l'heure actuelle |
autoDeleteTtl 2 |
Durée entre la soumission de la requête de création ou de mise à jour du cluster et le moment où le cluster commence à être supprimé. Lors de la mise à jour d'un cluster, la nouvelle heure de suppression planifiée (heure de la demande de mise à jour plus la nouvelle durée) doit être postérieure à l'heure de suppression du cluster précédemment définie. Envoyez une valeur vide pour annuler une valeur autoDeleteTtl précédemment définie.
Indiquez une durée en secondes avec un maximum de neuf chiffres après la virgule. Se termine par "s".
Exemple : "3.5s". |
1 seconde | 10 minutes | 14 jours |
- Vous pouvez définir ou mettre à jour
idleDeleteTtl
etautoDeleteTime
ouautoDeleteTtl
dans votre requête de création ou de mise à jour de cluster. La première option dont les paramètres sont remplis prend effet pour supprimer le cluster. - Vous pouvez définir ou mettre à jour
autoDeleteTime
ouautoDeleteTtl
dans votre requête, mais pas les deux.
Console
- Ouvrez la page Créer un cluster de Dataproc.
- Sélectionnez le panneau Personnaliser le cluster.
- Dans la section Suppression planifiée, sélectionnez les options à appliquer à votre cluster.
Afficher les paramètres du cluster avec suppression programmée
CLI gcloud
Vous pouvez utiliser la commande gcloud dataproc clusters list
pour vérifier que la suppression planifiée d'un cluster est activée.
gcloud dataproc clusters list \ --region=REGION
... NAME WORKER_COUNT ... SCHEDULED_DELETE CLUSTER_ID NUMBER ... enabled ...
Vous pouvez utiliser la commande gcloud dataproc clusters describe
pour vérifier les paramètres de suppression planifiée LifecycleConfig
d'un cluster.
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' ...
Les valeurs autoDeleteTime
et idleDeleteTtl
sont les valeurs de configuration de suppression planifiée définies sur le cluster.
Dataproc génère la valeur idleStartTime
, qui correspond à la dernière heure de début d'inactivité du cluster. Dataproc supprime le cluster s'il reste inactif à idleStartTime
+ idleDeleteTtl
.
API REST
Vous pouvez faire une requête clusters.list pour confirmer que la suppression planifiée d'un cluster est activée.
Console
- Vous pouvez afficher les paramètres de suppression planifiée du cluster en sélectionnant le nom du cluster sur la page Clusters de Dataproc dans la Google Cloud console.
- Sur la page des détails du cluster, sélectionnez l'onglet Configuration. Accédez à la liste de configuration du cluster pour afficher les paramètres de suppression planifiée.