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:
- após um período de inatividade do cluster especificado
- numa hora futura especificada
- após um período especificado que começa a partir do momento do envio do pedido de criação do cluster
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:
- Remover o papel de agente de serviço do Dataproc do IAM na conta de serviço do agente de serviço do Dataproc
- Desativar a API Dataproc no projeto do cluster
- Ativar a proteção contra eliminação de VMs do Compute Engine numa VM de cluster de eliminação agendada
- Ativar os VPC Service Controls se a conta de serviço do agente de serviço do Dataproc (identidade do plano de controlo) não estiver dentro do limite do perímetro
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-idle 1 |
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-time 2 |
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-age 2 |
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 |
- Pode transmitir a flag
delete-max-idle
com a flagdelete-expiration-time
oudelete-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. - Pode transmitir o indicador
delete-expiration-time
ou o indicadordelete-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. |
---|---|---|---|---|
idleDeleteTtl 1 |
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 |
autoDeleteTime 2 |
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 |
autoDeleteTtl 2 |
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 |
- Pode definir ou atualizar
idleDeleteTtl
eautoDeleteTime
ouautoDeleteTtl
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. - Pode definir ou atualizar
autoDeleteTime
ouautoDeleteTtl
no seu pedido, mas não ambos.
Consola
- Abra a página do Dataproc Criar um cluster.
- Selecione o painel Personalizar cluster.
- 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
... 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.