Para evitar cobranças doGoogle Cloud por um cluster inativo, use o recurso de exclusão programada de cluster do Dataproc ao criar um cluster. Com esse recurso, você tem opções para excluir um cluster quando ocorrerem os seguintes eventos:
- após um período de inatividade especificado do cluster
- em um horário futuro especificado;
- após um período especificado que começa a partir do momento do envio da solicitação de criação do cluster.
Ações que desativam a exclusão programada
Enquanto um cluster está em execução, as seguintes ações desativam a exclusão programada até que a ação de desativação seja revertida:
- Remoção do papel de agente de serviço do Dataproc do IAM na conta de serviço do agente de serviço do Dataproc
- Como desativar a API Dataproc no projeto do cluster
- Como ativar a proteção contra exclusão de VMs do Compute Engine em uma VM de cluster de exclusão programada
- Ativar o VPC-Service Controls se a conta de serviço do agente de serviço do Dataproc (identidade do plano de controle) não estiver dentro do limite do perímetro
Calcular o tempo de inatividade do cluster
Use a exclusão programada para excluir um cluster após um período de inatividade especificado. O tempo ocioso é calculado depois que o cluster é criado e o provisionamento é concluído. O cálculo do tempo ocioso começa quando um cluster não tem jobs em execução.
A propriedade do cluster dataproc:dataproc.cluster-ttl.consider-yarn-activity
afeta o cálculo do tempo ocioso do cluster da seguinte maneira:
- Essa propriedade é ativada (definida como
true
) por padrão. - Quando essa propriedade está ativada, a atividade do YARN e da API Dataproc Jobs
precisa estar inativa para iniciar e continuar incrementando o cálculo do tempo de inatividade do cluster.
- A atividade do YARN inclui aplicativos YARN pendentes e em execução.
- A atividade da API Jobs do Dataproc inclui jobs pendentes e em execução enviados a essa API.
- Quando essa propriedade é definida como
false
, o cálculo do tempo de inatividade do cluster começa e continua apenas quando a atividade da API Jobs do Dataproc está inativa.
A propriedade dataproc:dataproc.cluster-ttl.consider-yarn-activity
se aplica a clusters criados com versões de imagem lançadas em ou após 1.4.64
, 1.5.39
, 2.0.13
e versões de imagem posteriores. Para clusters criados com versões de imagem anteriores, apenas a atividade da API Dataproc Jobs é considerada no cálculo do tempo de inatividade do cluster.
Usar a exclusão programada de cluster
É possível definir valores de exclusão programada ao criar um cluster usando a Google Cloud CLI, a API Dataproc ou o console Google Cloud . Depois de criar o cluster, é possível atualizá-lo para mudar ou excluir valores de exclusão programada definidos anteriormente.
CLI da gcloud
É possível criar ou atualizar valores de exclusão programada em um cluster transmitindo as flags e os valores listados na tabela a seguir para os comandos
gcloud dataproc clusters create
ou gcloud dataproc clusters update
.
Sinalização da CLI gcloud | Descrição | Granularidade de valor | Valor mínimo | Valor máximo |
---|---|---|---|---|
--delete-max-idle 1 |
Aplicável aos comandos de criação e atualização de clusters.
A duração entre o momento em que o cluster fica inativo após a
criação ou atualização e está pronto para uso até o
momento em que a exclusão do cluster é iniciada. Forneça 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 |
Aplicável apenas ao comando de atualização do cluster.
Cancela a exclusão do cluster pela configuração da flag delete-max-idle
anterior. |
não aplicável | não aplicável | não aplicável |
--delete-expiration-time 2 |
Aplicável aos comandos de criação e atualização de clusters. O tempo para iniciar a exclusão do cluster no formato de data e hora ISO 8601. Para gerar data e hora no formato correto, use o gerador de carimbo de data/hora. Por exemplo, "2017-08-22T13:31:48-08:00" especifica o tempo de expiração 13h21m48s no fuso horário UTC -8:00. | 1 segundo | 10 minutos a partir do horário atual | 14 dias a partir do horário atual |
--delete-max-age 2 |
Aplicável aos comandos de criação e atualização de clusters.
Duração entre o momento do envio da solicitação de criação do cluster e o momento em que inicia a exclusão dele. Forneça 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 |
Aplicável apenas ao comando de atualização do cluster.
Cancela a exclusão automática do cluster pela configuração anterior da flag delete-max-age ou delete-expiration-time . |
Não relevante | Não aplicável | Não relevante |
- É possível transmitir a flag
delete-max-idle
com a flagdelete-expiration-time
oudelete-max-age
na solicitação de criação ou atualização do cluster. A primeira a se tornar verdadeira entra em vigor para excluir o cluster. - É possível transmitir a flag
delete-expiration-time
ou a flagdelete-max-age
para o comando de criação ou atualização do cluster, mas não ambas.
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 do cluster:
gcloud dataproc clusters update CLUSTER_NAME \ --region=REGION \ --delete-max-idle=DURATION \ --no-delete-max-age \ ... other flags
API REST
É possível criar ou atualizar valores de exclusão programada em um cluster definindo os campos e valores da API ClusterLifecycleConfig do Dataproc listados na tabela a seguir como parte de uma solicitação de API cluster.create ou cluster.patch do Dataproc.
Campo da API | Descrição | Granularidade de valor | Valor mínimo | Valor máximo |
---|---|---|---|---|
idleDeleteTtl 1 |
Aplicável aos comandos de criação e atualização de clusters.
A duração entre o momento em que o cluster fica inativo após a
criação ou atualização e está pronto para uso até o
momento em que a exclusão do cluster é iniciada. Ao
atualizar um cluster com um novo valor, ele precisa ser maior que o definido
anteriormente.
Forneça uma duração em segundos com até nove dígitos fracionários, terminando com
's'. Exemplo: "3.5s".
Envie uma duração vazia para cancelar um valor de idleDeleteTtl definido anteriormente. |
1 segundo | 5 minutos | 14 dias |
autoDeleteTime 2 |
Aplicável aos comandos de criação e atualização de clusters.
Momento de início da exclusão do cluster. Ao atualizar um cluster com um novo horário, ele precisa ser posterior ao definido anteriormente. Ao atualizar, se
um valor vazio for definido para autoDeleteTime , o recurso de
exclusão automática será cancelado.Forneça um carimbo de data/hora no formato UTC "Zulu" RFC 3339, medido com precisão de nanossegundos. Exemplo: "2014-10-02T15:01:23.045123456Z". |
1 segundo | 10 minutos a partir do horário atual | 14 dias a partir do horário atual |
autoDeleteTtl 2 |
A duração entre o momento do envio da solicitação de criação ou atualização do cluster e o momento em que inicia a exclusão dele. Ao atualizar um cluster, o novo horário de exclusão programada (horário da solicitação de atualização mais a nova duração) não pode ser anterior ao horário de exclusão do cluster definido anteriormente. Envie um valor vazio
para cancelar um valor de autoDeleteTtl definido anteriormente.
Forneça uma duração em segundos com até nove dígitos fracionários, terminando com 's'.
Exemplo: "3.5s". |
1 segundo | 10 minutos | 14 dias |
- É possível definir ou atualizar
idleDeleteTtl
eautoDeleteTime
ouautoDeleteTtl
na solicitação de criação ou atualização do cluster. A primeira a se tornar verdadeira entra em vigor para excluir o cluster. - É possível definir ou atualizar
autoDeleteTime
ouautoDeleteTtl
na solicitação, mas não ambos.
Console
- Abra a página Criar um cluster do Dataproc.
- Selecione o painel Personalizar cluster.
- Na seção Exclusão programada, selecione as opções a serem aplicadas ao cluster.
Ver as configurações do cluster para exclusão programada
CLI da gcloud
Use o comando gcloud dataproc clusters list
para
confirmar que um cluster tem a exclusão programada ativada.
gcloud dataproc clusters list \ --region=REGION
... NAME WORKER_COUNT ... SCHEDULED_DELETE CLUSTER_ID NUMBER ... enabled ...
Use o comando gcloud dataproc clusters describe
para verificar as configurações de exclusão programada LifecycleConfig
do 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' ...
Os autoDeleteTime
e idleDeleteTtl
são os valores de configuração de exclusão programados definidos no cluster.
O Dataproc gera o valor idleStartTime
, que é o horário de início mais recente do cluster. O Dataproc exclui o cluster se ele permanecer inativo em idleStartTime
+ idleDeleteTtl
.
API REST
Você pode fazer uma solicitação clusters.list para confirmar que um cluster tem a exclusão programada ativada.
Console
- É possível ver as configurações de exclusão programada do cluster selecionando o nome dele na página "Clusters" do Dataproc no Google Cloud console.
- Na página de detalhes dos clusters, selecione a guia Configuração. Acesse a lista de configurações do cluster para ver as configurações de exclusão programada.