Eliminação agendada de clusters

Para ajudar a evitar incorrer em Google Cloud custos com um cluster inativo, use a funcionalidade de eliminação programada de clusters do Dataproc quando criar um cluster. Esta funcionalidade oferece opções para eliminar um cluster quando ocorrem os seguintes eventos:

Ações que desativam a eliminação agendada

Enquanto um cluster está em execução, as seguintes ações desativam a eliminação agendada até que a ação de desativação seja revertida:

Calcule o tempo de inatividade do cluster

Pode usar a eliminação programada para eliminar um cluster após um tempo de inatividade especificado do cluster. O tempo de inatividade é calculado após a criação do cluster e o aprovisionamento do cluster estar concluído. O cálculo do tempo de inatividade começa quando um cluster não tem tarefas em execução.

A dataproc:dataproc.cluster-ttl.consider-yarn-activity propriedade do cluster afeta o cálculo do tempo de inatividade do cluster da seguinte forma:

  • Esta propriedade está ativada (definida como true) por predefinição.
  • Quando esta propriedade está ativada, a atividade da API YARN e Dataproc Jobs tem de estar inativa para iniciar e continuar a aumentar o cálculo do tempo de inatividade do cluster.
    • A atividade do YARN inclui aplicações do YARN pendentes e em execução.
    • A atividade da API Dataproc Jobs inclui tarefas pendentes e em execução enviadas para a API Dataproc Jobs.
  • Quando esta propriedade está definida como false, o cálculo do tempo de inatividade do cluster começa e continua apenas quando a atividade da API Dataproc Jobs está inativa.

A propriedade dataproc:dataproc.cluster-ttl.consider-yarn-activity aplica-se a clusters criados com versões de imagens lançadas a 1.4.64, 1.5.39, 2.0.13 ou posteriormente. Para clusters criados com versões de imagens anteriores, apenas a atividade da API Dataproc Jobs é considerada no cálculo do tempo de inatividade do cluster.

Use a eliminação agendada de clusters

Pode definir valores de eliminação agendada quando cria um cluster através da CLI Google Cloud, da API Dataproc ou da Google Cloud consola. Depois de criar o cluster, pode atualizá-lo para alterar ou eliminar os valores de eliminação agendada definidos anteriormente no cluster.

CLI gcloud

Pode criar ou atualizar valores de eliminação agendada num cluster transmitindo as flags e os valores indicados na tabela seguinte para os comandos gcloud dataproc clusters create ou gcloud dataproc clusters update.

Flag da CLI gcloud Descrição Nível de detalhe do valor Valor mín. Valor máx.
--delete-max-idle1 Aplica-se aos comandos de criação e atualização de clusters. A duração desde o momento em que o cluster fica inativo após a criação ou a atualização do cluster e está num estado pronto a usar até ao momento em que o cluster começa a ser eliminado. Indique a duração no formato IntegerUnit, em que a unidade pode ser "s, m, h, d" (segundos, minutos, horas, dias). Exemplo: "30m": 30 minutos a partir do momento em que o cluster fica inativo. 1 segundo 5 minutos 14 dias
--no-delete-max-idle Aplica-se apenas ao comando de atualização do cluster. Cancela a eliminação de clusters pela definição da flag delete-max-idle anterior. não aplicável não aplicável não aplicável
--delete-expiration-time2 Aplica-se aos comandos de criação e atualização de clusters. A hora de início da eliminação do cluster no formato de data/hora ISO 8601. Para gerar a data/hora no formato correto, pode usar o gerador de data/hora. Por exemplo, "2017-08-22T13:31:48-08:00" especifica uma hora de validade de 13:21:48 no fuso horário UTC -8:00.1 segundo 10 minutos a partir da hora atual 14 dias a partir da hora atual
--delete-max-age2 Aplica-se aos comandos de criação e atualização de clusters. A duração desde o momento do envio do pedido de criação do cluster até ao momento em que o cluster começa a ser eliminado. Indique a duração no formato IntegerUnit, em que a unidade pode ser "s, m, h, d" (segundos, minutos, horas, dias). Exemplos: "30m": 30 minutos a partir de agora; "1d": 1 dia a partir de agora. 1 segundo 10 minutos 14 dias
--no-delete-max-age Aplica-se apenas ao comando de atualização do cluster. Cancela a eliminação automática de clusters pela definição da flag delete-max-age ou delete-expiration-time anterior. Não aplicável Não aplicável Não aplicável
Notas:
  1. Pode transmitir a flag delete-max-idle com a flag delete-expiration-time ou delete-max-age no seu pedido de criação ou atualização do cluster. A primeira a tornar-se verdadeira entra em vigor para eliminar o cluster.
  2. Pode transmitir o indicador delete-expiration-time ou o indicador delete-max-age para o comando de criação ou atualização do cluster, mas não ambos.

Exemplo de criação de cluster:

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    --delete-max-idle=DURATION \
    --delete-expiration-time=TIME \
    ... other flags ...

Exemplo de atualização de cluster:

gcloud dataproc clusters update CLUSTER_NAME \
    --region=REGION \
    --delete-max-idle=DURATION \
    --no-delete-max-age \
    ... other flags

API REST

Pode criar ou atualizar valores de eliminação agendada num cluster definindo os campos e os valores da ClusterLifecycleConfig da API Dataproc indicados na tabela seguinte como parte de um cluster.create ou cluster.patch do Dataproc.

Campo da API Descrição Nível de detalhe do valor Valor mín. Valor máx.
idleDeleteTtl1 Aplica-se aos comandos de criação e atualização de clusters. A duração desde o momento em que o cluster fica inativo após a criação ou a atualização do cluster e está num estado pronto a usar até ao momento em que o cluster começa a ser eliminado. Quando atualiza um cluster com um novo valor, o novo valor tem de ser superior ao valor definido anteriormente. Indique uma duração em segundos com até nove dígitos fracionários, terminada por "s". Exemplo: "3,5s". Envie uma duração vazia para cancelar um valor idleDeleteTtl definido anteriormente. 1 segundo 5 minutos 14 dias
autoDeleteTime2 Aplica-se aos comandos de criação e atualização de clusters. A hora de começar a eliminar o cluster. Quando atualiza um cluster com uma nova hora, a nova hora tem de ser posterior à hora definida anteriormente. Quando faz a atualização, se for definido um valor vazio para autoDeleteTime, cancela a eliminação automática existente.
Indique uma data/hora no formato RFC 3339 UTC "Zulu", com precisão de nanosegundos. Exemplo: "2014-10-02T15:01:23.045123456Z".
1 segundo 10 minutos a partir da hora atual 14 dias a partir da hora atual
autoDeleteTtl2 A duração desde o momento do envio do pedido de criação ou atualização do cluster até ao momento em que o cluster começa a ser eliminado. Quando atualiza um cluster, a nova hora de eliminação agendada (hora do pedido de atualização mais a nova duração) tem de ser posterior à hora de eliminação do cluster definida anteriormente. Envie um valor vazio para cancelar um valor autoDeleteTtl definido anteriormente. Indique uma duração em segundos com até nove dígitos fracionários, terminada por "s". Exemplo: "3,5s". 1 segundo 10 minutos 14 dias
Notas:
  1. Pode definir ou atualizar idleDeleteTtl e autoDeleteTime ou autoDeleteTtl no seu pedido de criação ou atualização de clusters. A primeira condição a tornar-se verdadeira entra em vigor para eliminar o cluster.
  2. Pode definir ou atualizar autoDeleteTime ou autoDeleteTtl no seu pedido, mas não ambos.

Consola

  1. Abra a página do Dataproc Criar um cluster.
  2. Selecione o painel Personalizar cluster.
  3. Na secção Eliminação agendada, selecione as opções a aplicar ao cluster.

Veja as definições do cluster de eliminação agendada

CLI gcloud

Pode usar o comando gcloud dataproc clusters list para confirmar que um cluster tem a eliminação agendada ativada.

 gcloud dataproc clusters list \
     --region=REGION
Exemplo de saída:
...
NAME         WORKER_COUNT ... SCHEDULED_DELETE
CLUSTER_ID   NUMBER       ... enabled
...

Pode usar o comando gcloud dataproc clusters describe para verificar as definições de eliminação agendada do 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 são os valores de configuração de eliminação agendada definidos no cluster. O Dataproc gera o valor idleStartTime, que é a hora de início de inatividade do cluster mais recente. O Dataproc elimina o cluster se este permanecer inativo durante idleStartTime + idleDeleteTtl.

API REST

Pode fazer um pedido clusters.list para confirmar que um cluster tem a eliminação agendada ativada.

Consola

  • Pode ver as definições de eliminação agendada do cluster selecionando o nome do cluster na página Clusters do Dataproc na Google Cloud consola.
  • Na página de detalhes dos clusters, selecione o separador Configuração. Aceda à lista de configuração de clusters para ver as definições de eliminação agendada.