Para evitar que se te apliquen Google Cloud cargos por un clúster inactivo, usa la función de eliminación programada de clústeres de Dataproc al crear un clúster. Esta función ofrece opciones para eliminar un clúster cuando se produzcan los siguientes eventos:
- Cuando haya transcurrido un periodo de inactividad del clúster especificado
- en una fecha y hora futuras
- después de un periodo especificado que empieza en el momento del envío de la solicitud de creación del clúster
Acciones que inhabilitan la eliminación programada
Mientras un clúster está en ejecución, las siguientes acciones inhabilitan la eliminación programada hasta que se revierta la acción de inhabilitación:
- Quitar el rol Agente de servicio de Dataproc de IAM de la cuenta de servicio Agente de servicio de Dataproc
- Inhabilitar la API de Dataproc en el proyecto del clúster
- Habilitar la protección contra eliminación de máquinas virtuales de Compute Engine en una máquina virtual de clúster con eliminación programada
- Habilitar Controles de Servicio de VPC si la cuenta de servicio del agente de servicio de Dataproc (identidad del plano de control) no está dentro del límite del perímetro
Calcular el tiempo de inactividad de un clúster
Puedes usar la eliminación programada para eliminar un clúster cuando lleve un tiempo especificado inactivo. El tiempo de inactividad se calcula después de crear el clúster y de completar el aprovisionamiento del clúster. El cálculo del tiempo de inactividad empieza cuando un clúster no tiene tareas en ejecución.
La dataproc:dataproc.cluster-ttl.consider-yarn-activity
propiedad de clúster
influye en el cálculo del tiempo de inactividad del clúster de la siguiente manera:
- Esta propiedad está habilitada (con el valor
true
) de forma predeterminada. - Cuando esta propiedad está habilitada, tanto la actividad de YARN como la de la API Jobs de Dataproc deben estar inactivas para iniciar y seguir incrementando el cálculo del tiempo de inactividad del clúster.
- La actividad de YARN incluye aplicaciones de YARN pendientes y en ejecución.
- La actividad de la API Jobs de Dataproc incluye las tareas pendientes y en ejecución enviadas a la API Jobs de Dataproc.
- Cuando esta propiedad se define como
false
, el cálculo del tiempo de inactividad del clúster se inicia y continúa solo cuando la actividad de la API Dataproc Jobs está inactiva.
La propiedad dataproc:dataproc.cluster-ttl.consider-yarn-activity
se aplica a los clústeres creados con versiones de imagen lanzadas el 1.4.64
, el 1.5.39
, el 2.0.13
o posteriormente. En los clústeres creados con versiones de imagen anteriores, solo se tiene en cuenta la actividad de la API Jobs de Dataproc para calcular el tiempo de inactividad del clúster.
Usar la eliminación programada de clústeres
Puede definir valores de eliminación programada al crear un clúster con la CLI de Google Cloud, la API de Dataproc o la Google Cloud consola. Una vez que hayas creado el clúster, podrás actualizarlo para cambiar o eliminar los valores de eliminación programada que hayas definido previamente en él.
CLI de gcloud
Para crear o actualizar valores de eliminación programada en un clúster, debes transferir 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 la CLI de gcloud | Descripción | Granularidad de los valores | Valor mínimo | Valor máximo |
---|---|---|---|---|
--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 se queda inactivo después de crearse o actualizarse y está listo para usarse hasta que empieza a eliminarse. Indica la duración en formato IntegerUnit , donde la unidad puede ser "s, m, h, d" (segundos, minutos, horas o días). Por ejemplo, "30m": 30 minutos a partir del momento en que el clúster se quede 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 mediante el ajuste de la marca delete-max-idle
anterior. |
no corresponde | no corresponde | no corresponde |
--delete-expiration-time 2 |
Se aplica a los comandos de creación y actualización de clústeres. Hora a la que se empezará a eliminar el clúster en formato de fecha y hora ISO 8601. Para generar la fecha y la hora en el formato correcto, puedes usar el generador de marcas de tiempo. Por ejemplo, "2017-08-22T13:31:48-08:00" especifica una hora de vencimiento de las 13:21:48 en la zona horaria UTC -8:00. | 1 segundo | 10 minutos a partir de la hora actual | 14 días a partir de la hora actual |
--delete-max-age 2 |
Se aplica a los comandos de creación y actualización de clústeres.
El tiempo que transcurre desde que se envía la solicitud de creación del clúster hasta que este empieza a eliminarse. Indica la duración en formato IntegerUnit , donde la unidad puede ser "s, m, h, d" (segundos, minutos, horas o días). Por ejemplo: "30m": 30 minutos a partir de ahora;
"1d": 1 día a partir de 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 que se haya configurado con las marcas delete-max-age o delete-expiration-time . |
No aplicable | No aplicable | No aplicable |
- Puedes enviar la marca
delete-max-idle
con la marcadelete-expiration-time
odelete-max-age
en tu solicitud de creación o actualización de clúster. La primera que se cumpla se aplicará para eliminar el clúster. - Puedes transferir la marca
delete-expiration-time
o la marcadelete-max-age
al comando de creación o actualización de clústeres, 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 de clúster:
gcloud dataproc clusters update CLUSTER_NAME \ --region=REGION \ --delete-max-idle=DURATION \ --no-delete-max-age \ ... other flags
API REST
Para crear o actualizar valores de eliminación programada en un clúster, defina los campos y valores de ClusterLifecycleConfig de la API de Dataproc que se indican en la siguiente tabla como parte de una solicitud de la API cluster.create o cluster.patch de Dataproc.
Campo de la API | Descripción | Granularidad de los valores | Valor mínimo | Valor máximo |
---|---|---|---|---|
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 se queda inactivo después de crearse o actualizarse y está listo para usarse hasta que empieza a eliminarse. Cuando
actualices un clúster con un valor nuevo, este debe ser superior al valor
establecido anteriormente.
Proporciona una duración en segundos con hasta nueve dígitos fraccionarios, terminada en "s". Ejemplo: "3.5s".
Envíe una duración vacía para cancelar un valor de idleDeleteTtl definido anteriormente. |
1 segundo | 5 minutos | 14 días |
autoDeleteTime 2 |
Se aplica a los comandos de creación y actualización de clústeres.
Hora a la que se debe empezar a eliminar el clúster. Cuando actualices un clúster con una nueva hora, esta debe ser posterior a la hora establecida anteriormente. Si se asigna un valor vacío a autoDeleteTime al actualizar, se cancelará la eliminación automática.Proporciona una marca de tiempo en formato RFC 3339 UTC "Zulu", con una precisión de nanosegundos. Ejemplo: "2014-10-02T15:01:23.045123456Z". |
1 segundo | 10 minutos a partir de la hora actual | 14 días a partir de la hora actual |
autoDeleteTtl 2 |
El tiempo que transcurre desde que se envía la solicitud de creación o actualización del clúster hasta que este empieza a eliminarse. Cuando se actualiza un clúster,
la nueva hora de eliminación programada (la 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
establecida anteriormente. Envíe un valor vacío
para cancelar un valor autoDeleteTtl definido anteriormente.
Indica una duración en segundos con hasta nueve dígitos fraccionarios, terminada en "s".
Ejemplo: "3.5s". |
1 segundo | 10 minutos | 14 días |
- Puedes definir o actualizar tanto
idleDeleteTtl
comoautoDeleteTime
oautoDeleteTtl
en tu solicitud de creación o actualización de clúster. La primera que se convierta en verdadera se aplicará para eliminar el clúster. - Puedes definir o actualizar
autoDeleteTime
oautoDeleteTtl
en tu solicitud, pero no ambos.
Consola
- Abre la página de Dataproc Crear un clúster.
- Selecciona el panel Personalizar clúster.
- En la sección Eliminación programada, selecciona las opciones que quieras aplicar a tu clúster.
Ver la configuración de un clúster con eliminación programada
CLI de gcloud
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 consultar los ajustes 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 definidos en el clúster.
Dataproc genera el valor idleStartTime
, que es la hora de inicio de inactividad más reciente del clúster. Dataproc elimina el clúster si permanece inactivo durante idleStartTime
+
idleDeleteTtl
.
API REST
Puedes enviar una solicitud clusters.list para confirmar que un clúster tiene habilitada la eliminación programada.
Consola
- Para ver la configuración de eliminación programada de un clúster, selecciona su nombre en la página Clústeres de Dataproc en la consola Google Cloud .
- En la página de detalles del clúster, selecciona la pestaña Configuración. Ve a la lista de configuraciones de clústeres para ver los ajustes de eliminación programada.