Para evitar incurrir en cargos deGoogle Cloud por un clúster inactivo, usa la función de eliminación programada de clústeres de Dataproc cuando crees un clúster. Esta función proporciona opciones para borrar un clúster cuando ocurren los siguientes eventos:
- después de un período de inactividad del clúster específico
- en un momento futuro específico
- después de un período específico que comienza con el envío de la solicitud de creación de clústeres
Acciones que inhabilitan la eliminación programada
Mientras se ejecuta un clúster, las siguientes acciones inhabilitan la eliminación programada hasta que se revierta la acción de inhabilitación:
- Quitar el rol de IAM de agente de servicio de Dataproc en la cuenta de servicio de agente de servicio de Dataproc
- Inhabilitar la API de Dataproc en el proyecto del clúster
- Habilitar la protección contra la eliminación de VM de Compute Engine en una VM del clúster de eliminación programada
- Habilitar controles del servicio de VPC si la cuenta de servicio del agente del servicio de Dataproc (identidad del plano de control) no está dentro del límite del perímetro
Cómo calcular el tiempo de inactividad del clúster
Puedes usar la eliminación programada para borrar un clúster después de un tiempo de inactividad especificado. El tiempo de inactividad se calcula después de que se crea el clúster y se completa el aprovisionamiento del clúster. El cálculo del tiempo de inactividad comienza cuando un clúster no tiene trabajos en ejecución.
La dataproc:dataproc.cluster-ttl.consider-yarn-activity
propiedad del clúster
afecta el cálculo del tiempo de inactividad del clúster de la siguiente manera:
- Esta propiedad está habilitada (configurada como
true
) de forma predeterminada. - Cuando esta propiedad está habilitada, tanto la actividad de YARN como la de la API de Dataproc Jobs deben estar inactivas para iniciar y continuar incrementando el cálculo del tiempo de inactividad del clúster.
- La actividad de YARN incluye las aplicaciones de YARN pendientes y en ejecución.
- La actividad de la API de Jobs de Dataproc incluye los trabajos pendientes y en ejecución enviados a la API de Jobs de Dataproc.
- Cuando esta propiedad se establece en
false
, el cálculo del tiempo de inactividad del clúster comienza y continúa solo cuando la actividad de la API de Jobs de Dataproc está inactiva.
La propiedad dataproc:dataproc.cluster-ttl.consider-yarn-activity
se aplica a los clústeres creados con versiones de imágenes lanzadas a partir del 1.4.64
, el 1.5.39
, el 2.0.13
y versiones de imágenes posteriores. Para los clústeres creados con versiones de imagen anteriores, solo se considera la actividad de la API de Jobs de Dataproc para calcular el tiempo de inactividad del clúster.
Usa la eliminación programada de clústeres
Puedes establecer valores de eliminación programada cuando creas un clúster con Google Cloud CLI, la API de Dataproc o la consola de Google Cloud . Después de crear el clúster, puedes actualizarlo para cambiar o borrar los valores de eliminación programada que se establecieron anteriormente en el clúster.
gcloud CLI
Puedes crear o actualizar valores de eliminación programada en un clúster si pasas las marcas y los valores que se indican en la siguiente tabla a los comandos gcloud dataproc clusters create
o gcloud dataproc clusters update
.
Marca de gcloud CLI | Descripción | Nivel de detalle del valor | Valor mín. | Valor máx. |
---|---|---|---|---|
--delete-max-idle 1 |
Se aplica a los comandos de creación y actualización de clústeres.
Es el tiempo que transcurre desde que el clúster queda inactivo después de que se crea o actualiza y está en un estado listo para usar hasta el momento en que comienza a borrarse. Proporciona la duración en formato IntegerUnit , en el que la unidad puede ser “s, m, h, d” (segundos, minutos, horas, días). Ejemplo: “30m”: 30 minutos desde el momento en que el clúster entra en estado inactivo. |
1 segundo | 5 minutos | 14 días |
--no-delete-max-idle |
Solo se aplica al comando de actualización del clúster.
Cancela la eliminación del clúster según el parámetro de configuración de la marca delete-max-idle anterior. |
no aplicable | no aplicable | no aplicable |
--delete-expiration-time 2 |
Se aplica a los comandos de creación y actualización de clústeres. El momento en que se comienza a borrar el clúster en el formato de fecha y hora ISO 8601. Para generar la fecha y hora en el formato correcto, puedes usar el Timestamp Generator. Por ejemplo, "2017-08-22T13:31:48-08:00" especifica una hora de vencimiento de 13:21:48 en la zona horaria UTC -8:00. | 1 segundo | 10 minutos desde la hora actual | 14 días desde la hora actual |
--delete-max-age 2 |
Se aplica a los comandos de creación y actualización de clústeres.
Es el tiempo que transcurre desde que se envía la solicitud de creación de clústeres hasta que este comienza a borrar. Proporciona la duración en formato IntegerUnit , en el que la unidad puede ser “s, m, h, d” (segundos, minutos, horas, días). Ejemplos: “30m” (30 minutos desde ahora) o “1d” (1 día desde ahora). |
1 segundo | 10 minutos | 14 días |
--no-delete-max-age |
Solo se aplica al comando de actualización del clúster.
Cancela la eliminación automática del clúster según el parámetro de configuración anterior de la marca delete-max-age o delete-expiration-time . |
No aplicable | No aplicable | No aplicable |
- Puedes pasar la marca
delete-max-idle
con la marcadelete-expiration-time
odelete-max-age
en tu solicitud de creación o actualización del clúster. La primera que sea verdadera se aplicará para borrar el clúster. - Puedes pasar la marca
delete-expiration-time
o la marcadelete-max-age
al comando de creación o actualización del clúster, pero no ambas.
Ejemplo de creación de clúster:
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --delete-max-idle=DURATION \ --delete-expiration-time=TIME \ ... other flags ...
Ejemplo de actualización del clúster:
gcloud dataproc clusters update CLUSTER_NAME \ --region=REGION \ --delete-max-idle=DURATION \ --no-delete-max-age \ ... other flags
API de REST
Puedes crear o actualizar valores de eliminación programada en un clúster configurando los campos y valores de la API de Dataproc ClusterLifecycleConfig que se indican en la siguiente tabla como parte de una solicitud a la API de Dataproc cluster.create o cluster.patch.
Campo de API | Descripción | Nivel de detalle del valor | Valor mín. | Valor máx. |
---|---|---|---|---|
idleDeleteTtl 1 |
Se aplica a los comandos de creación y actualización de clústeres.
Es el tiempo que transcurre desde que el clúster queda inactivo después de que se crea o actualiza y está en un estado listo para usar hasta que comienza a borrar. Cuando actualizas un clúster con un valor nuevo, este debe ser mayor que el valor ya establecido.
Proporciona una duración en segundos con hasta nueve dígitos decimales, terminada en "s". Ejemplo: “3.5s”.
Envía una duración vacía para cancelar un valor idleDeleteTtl establecido anteriormente. |
1 segundo | 5 minutos | 14 días |
autoDeleteTime 2 |
Se aplica a los comandos de creación y actualización de clústeres.
El momento de comenzar a borrar el clúster. Cuando actualizas un clúster con una hora nueva,
la hora nueva debe ser posterior a la hora ya establecida. Cuando se actualiza, si se establece un valor vacío para autoDeleteTime , se cancela la eliminación automática existente.Proporciona una marca de tiempo en formato RFC 3339 UTC "Zulu", con precisión de nanosegundos. Ejemplo: "2014-10-02T15:01:23.045123456Z". |
1 segundo | 10 minutos desde la hora actual | 14 días desde la hora actual |
autoDeleteTtl 2 |
Es el tiempo que transcurre desde que se envía la solicitud de creación o actualización del clúster hasta que este comienza a borrar. Cuando actualizas un clúster,
la nueva hora de eliminación programada (hora de la solicitud de actualización más la
nueva duración) debe ser posterior a la hora de
eliminación del clúster ya establecida. Envía un valor vacío
para cancelar un valor autoDeleteTtl ya establecido.
Muestra la duración en segundos con hasta nueve dígitos fraccionarios, terminados en “s”.
Ejemplo: “3.5s”. |
1 segundo | 10 minutos | 14 días |
- Puedes configurar o actualizar
idleDeleteTtl
yautoDeleteTime
oautoDeleteTtl
en tu solicitud de creación o actualización del clúster. La primera que sea verdadera se aplicará para borrar el clúster. - Puedes establecer o actualizar
autoDeleteTime
oautoDeleteTtl
en tu solicitud, pero no ambos.
Console
- Abre la página Create a cluster (Crear un clúster) de Dataproc.
- Selecciona el panel Personalizar clúster.
- En la sección Eliminación programada, selecciona las opciones que deseas aplicar a tu clúster.
Visualiza la configuración del clúster de eliminación programada
gcloud CLI
Puedes usar el comando gcloud dataproc clusters list
para confirmar que un clúster tiene habilitada la eliminación programada.
gcloud dataproc clusters list \ --region=REGION
... NAME WORKER_COUNT ... SCHEDULED_DELETE CLUSTER_ID NUMBER ... enabled ...
Puedes usar el comando gcloud dataproc clusters describe
para verificar la configuración de eliminación programada del clúster 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
y idleDeleteTtl
son los valores de configuración de eliminación programada establecidos en el clúster.
Dataproc genera el valor idleStartTime
, que es la última hora de inicio del clúster inactivo. Dataproc borra el clúster si este permanece inactivo en idleStartTime
+ idleDeleteTtl
.
API de REST
Puedes realizar una solicitud clusters.list para confirmar que un clúster tiene habilitada la eliminación programada.
Console
- Para ver la configuración de eliminación programada del clúster, selecciona el nombre del clúster en la página Clústeres de Dataproc en la Google Cloud consola.
- En la página de detalles del clúster, selecciona la pestaña Configuration. Ve a la lista de configuración del clúster para ver la configuración de eliminación programada.