Neste documento, descrevemos como encerrar automaticamente máquinas virtuais (VMs) em um grupo gerenciado de instâncias (MIG) especificando um limite de tempo para as VMs. Também descreve como o limite de tempo funciona para VMs em um MIG.
É possível otimizar cargas de trabalho temporárias especificando um limite de tempo para as VMs em um MIG. Quando uma VM atinge o limite de tempo, o MIG a encerra (exclui) automaticamente. Limitar o tempo de execução de VMs em um MIG por um limite de tempo ajuda a minimizar custos e liberar cota.
Para saber como especificar um limite de tempo para uma VM independente, consulte Limitar o tempo de execução de uma VM. Se você quiser que um MIG adicione ou exclua VMs automaticamente com base nas cargas de trabalho, consulte Como fazer escalonamento automático de grupos de instâncias.
Antes de começar
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine da seguinte maneira.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Limite de tempo como duração da execução
- Limite de tempo como rescisão
Crie um modelo de instância com duração de execução para VMs ou com um horário de encerramento para VMs.
Use o modelo de instância para criar um MIG ou atualizar um MIG.
Você deve obedecer às restrições para limitar o ambiente de execução de VMs independentes.
Ao criar um modelo de instância para especificar um limite de tempo para VMs em um MIG, as seguintes limitações se aplicam:
- Não é possível definir a ação de encerramento como
STOP
. Os MIGs aceitam apenasDELETE
. - Não é possível usar VMs spot.
- Não é possível definir a ação de encerramento como
Não é possível criar uma solicitação de redimensionamento em um MIG que use um modelo de instância que limita o tempo de execução da VM.
Não é possível limitar o tempo de execução das VMs em um MIG regional com o formato de distribuição
EVEN
e a redistribuição proativa de instâncias ativadas.No Console do Google Cloud, acesse a página Modelos de instância.
Clique em Criar modelo de instância.
Selecione o Local da seguinte forma:
- Se você quiser usar o modelo de instância em várias regiões, escolha Global.
- Se você quiser reduzir a dependência entre regiões, escolha Regional.
Se você escolheu regional, selecione a Região em que quer criar o modelo de instância.
Na seção Políticas de disponibilidade, abra Configurações avançadas do modelo de provisionamento de VM.
Marque a caixa de seleção Definir um limite de tempo para a VM.
No campo Tipo de limite de tempo, selecione Por horas (padrão) para especificar o limite de tempo como uma duração. No campo a seguir, insira a duração em horas.
Na lista No encerramento da VM, selecione Excluir.
Nos campos a seguir, aceite os valores padrão ou os modifique conforme necessário.
Clique em Criar.
INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.DURATION
: a duração da execução das VMs solicitadas. O MIG exclui automaticamente a VM após a duração especificada.Formate a duração como o número de dias, horas, minutos e segundos seguidos por
d
,h
,m
es
, respectivamente. Por exemplo, especifique30m
para uma duração de 30 minutos ou especifique1d2h3m4s
para uma duração de um dia, duas horas, três minutos e quatro segundos. A duração mínima é de 30 segundos (30s
) e a máxima é de 120 dias (120d
).PROJECT_ID
: o ID do projeto em que você quer criar o modelo de instância.INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.MACHINE_TYPE
: o tipo de máquina predefinido ou personalizado para as VMs no grupo.IMAGE_PROJECT
: o projeto de imagem que contém a imagem, por exemplo,debian-cloud
.IMAGE
ouIMAGE_FAMILY
- especifique uma das seguintes opções:IMAGE
: uma versão específica da imagem do SO, por exemplo,debian-10-buster-v20200309
.IMAGE_FAMILY
: uma família de imagens. Especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificarfamily/debian-10
, a versão mais recente na família de imagens do Debian 10 será usada.
DURATION
: a duração da execução das VMs solicitadas. O MIG exclui automaticamente a VM após a duração especificada.Formate a duração como o número de dias, horas, minutos e segundos seguidos por
d
,h
,m
es
, respectivamente. Por exemplo, especifique30m
para uma duração de 30 minutos ou especifique1d2h3m4s
para uma duração de um dia, duas horas, três minutos e quatro segundos. A duração mínima é de 30 segundos (30s
) e a máxima é de 120 dias (120d
).No Console do Google Cloud, acesse a página Modelos de instância.
Clique em Criar modelo de instância.
Selecione o Local da seguinte forma:
- Se você quiser usar o modelo de instância em várias regiões, escolha Global.
- Se você quiser reduzir a dependência entre regiões, escolha Regional.
Se você escolheu regional, selecione a Região em que quer criar o modelo de instância.
Na seção Políticas de disponibilidade, abra Configurações avançadas do modelo de provisionamento de VM.
No campo Tipo de limite de tempo, selecione Por data para especificar o limite como um horário e data. No campo a seguir, clique em
Selecionar data e hora e escolha a data, a hora e o fuso horário para o encerramento automático.Na lista No encerramento da VM, selecione Excluir.
Nos campos a seguir, aceite os valores padrão ou os modifique conforme necessário.
Clique em Criar.
INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.TIME
: o tempo em que você quer que a VM seja encerrada automaticamente. O tempo especificado precisa ser pelo menos 30 segundos no futuro e no máximo 120 dias no futuro. Formate o tempo como um carimbo de data/hora RFC 3339:YYYY-MM-DDTHH:MM:SSOFFSET
Substitua:
YYYY-MM-DD
: uma data formatada como um ano de quatro dígitos, um mês de dois dígitos e um dia de dois dígitos do mês, separado por hifens.HH:MM:SS
: um horário formatado como uma hora de dois dígitos usando o horário de 24 horas, minutos de dois dígitos e segundos de dois dígitos separados por hífens.OFFSET
: fuso horário formatado como um deslocamento Tempo Universal Coordenado (UTC). Por exemplo, para usar o Horário Padrão do Pacífico (PST), que é oito horas antes do UTC, especifique-08:00
. Como alternativa, para não usar deslocamento (UTC+0), especifiqueZ
.
PROJECT_ID
: o ID do projeto em que você quer criar o modelo de instância.INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.MACHINE_TYPE
: o tipo de máquina predefinido ou personalizado para as VMs no grupo.IMAGE_PROJECT
: o projeto de imagem que contém a imagem, por exemplo,debian-cloud
.IMAGE
ouIMAGE_FAMILY
- especifique uma das seguintes opções:IMAGE
: uma versão específica da imagem do SO, por exemplo,debian-10-buster-v20200309
.IMAGE_FAMILY
: uma família de imagens. Especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificarfamily/debian-10
, a versão mais recente na família de imagens do Debian 10 será usada.
TIME
: o tempo em que você quer que a VM seja encerrada automaticamente. O tempo especificado precisa ser pelo menos 30 segundos no futuro e no máximo 120 dias no futuro. Formate o tempo como um carimbo de data/hora RFC 3339:YYYY-MM-DDTHH:MM:SSOFFSET
Substitua:
YYYY-MM-DD
: uma data formatada como um ano de quatro dígitos, um mês de dois dígitos e um dia de dois dígitos do mês, separado por hifens.HH:MM:SS
: um horário formatado como uma hora de dois dígitos usando o horário de 24 horas, minutos de dois dígitos e segundos de dois dígitos separados por hífens.OFFSET
: fuso horário formatado como um deslocamento Tempo Universal Coordenado (UTC). Por exemplo, para usar o Horário Padrão do Pacífico (PST), que é oito horas antes do UTC, especifique-08:00
. Como alternativa, para não usar deslocamento (UTC+0), especifiqueZ
.
Limite de tempo como duração da execução (
maxRunDuration
):terminationTimestamp
de uma VM = horário de início ou de criação mais recente da VM +maxRunDuration
Ao especificar uma duração, o carimbo de data/hora de encerramento é definido em relação ao horário de início ou de criação mais recente da VM. Se a VM for recriada, reiniciada, retomada ou substituída, o carimbo de data/hora de encerramento será recalculado. O carimbo de data/hora de encerramento pode variar nas VMs em um MIG com base no horário em que cada VM foi criada ou iniciada pela última vez. Por exemplo, se uma VM for reparada, o carimbo de data/hora de encerramento será recalculado adicionando a duração à hora em que a VM foi recriada durante o reparo.
Limite de tempo de rescisão (
terminationTime
):terminationTimestamp
de uma VM =terminationTime
Quando você especifica uma hora, o carimbo de data/hora de término é definido como esse horário, desde que esteja no futuro. Se o horário de encerramento tiver passado, qualquer ação de MIG que tente criar, reiniciar ou substituir uma VM falhará com um erro. Para resolver esse erro, crie um novo modelo de instância com um horário de encerramento no futuro e aplique esse modelo ao MIG. Para usar as propriedades do modelo atual no novo modelo, crie um modelo de instância com base nele.
- Saiba mais sobre os cenários básicos para a criação de MIGs.
- Saiba mais sobre como aplicar um novo modelo de instância a um MIG atual.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Limitar o tempo de execução de VMs em um MIG
É possível limitar o tempo de execução das VMs em um MIG especificando um limite de tempo no modelo de instância usado para o MIG. Quando o MIG cria VMs com base no modelo, o limite de tempo é aplicado a cada VM.
É possível especificar um destes dois tipos de limite:
Para especificar um limite de tempo para as VMs em um MIG, siga estas etapas:
Limitações
Criar um modelo de instância com duração de execução para VMs
Para encerrar automaticamente as VMs em um MIG depois de serem executadas por um determinado período, defina uma duração máxima (
maxRunDuration
) no modelo de instância.Console
gcloud
Use o comando
instance-templates create
. Para excluir VMs automaticamente após um período específico, inclua a sinalização--max-run-duration
e defina a sinalização--instance-termination-action
comoDELETE
da seguinte maneira:gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --max-run-duration=DURATION \ --instance-termination-action=DELETE
Substitua:
Terraform
Para criar um modelo de instância usando o Terraform, use o recurso
google_compute_instance_template
. Para criar um modelo de instância que exclua automaticamente as VMs após uma duração específica, é necessário incluir o argumentomax_run_duration
e definir o argumentoinstance_termination_action
comoDELETE
.Para mais informações, consulte a documentação do Terraform para o recurso
google_compute_instance_template
.REST
Use o método
instanceTemplates.insert
. Para excluir VMs automaticamente após um período específico, inclua o campomaxRunDuration
e defina o campoinstanceTerminationAction
comoDELETE
da seguinte maneira:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default", "accessConfigs": [ { "name": "external-IP", "type": "ONE_TO_ONE_NAT" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ] "scheduling": { "maxRunDuration": { "seconds": DURATION }, "instanceTerminationAction": "DELETE" } } }
Substitua:
Criar um modelo de instância com um horário de encerramento para VMs
Para encerrar automaticamente as VMs em um MIG em um horário específico, defina um horário de encerramento (
terminationTime
) no modelo de instância. É possível definir uma data e hora em que você quer que um MIG encerre as VMs.Console
gcloud
Use o comando
instance-templates create
. Para excluir VMs automaticamente em um horário específico, inclua a sinalização--termination-time
e defina a sinalização--instance-termination-action
comoDELETE
da seguinte maneira:gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --termination-time=TIME \ --instance-termination-action=DELETE
Substitua:
REST
Use o método
instanceTemplates.insert
. Para excluir VMs automaticamente em um horário específico, inclua o campoterminationTime
e defina o campoinstanceTerminationAction
comoDELETE
da seguinte maneira:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default", "accessConfigs": [ { "name": "external-IP", "type": "ONE_TO_ONE_NAT" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ] "scheduling": { "terminationTime": TIME, "instanceTerminationAction": "DELETE" } } }
Substitua:
Como o limite de tempo funciona para VMs em um MIG
Quando você especifica um limite de tempo para VMs em um MIG, o horário em que ele encerrará uma VM é definido automaticamente no campo do carimbo de data/hora de encerramento (
terminationTimestamp
) da VM.Com base no tipo de limite de tempo especificado, o carimbo de data/hora de encerramento de uma VM é definido da seguinte maneira:
Durante uma atualização de VM, o carimbo de data/hora de encerramento não é alterado. Por exemplo, se você definir o nível de interrupção das atualizações para
REFRESH
, o carimbo de data/hora de encerramento será mantido sempre que o MIG atualizar a VM.Quando você suspensa ou interrompe uma VM em um MIG, o carimbo de data/hora de encerramento é apagado automaticamente, independentemente do tipo de limite de tempo. Quando você retoma ou inicia uma VM, o carimbo de data/hora de encerramento é definido novamente com base no tipo de limite de tempo, conforme explicado anteriormente nesta seção.
Como o escalonamento automático funciona quando um limite de tempo é definido
O escalonamento automático permite que seu MIG adicione ou remova VMs automaticamente com base em aumentos ou reduções de carga. Quando um MIG exclui VMs que atingiram os carimbos de data/hora de encerramento, ele cria novas VMs para manter o tamanho recomendado pelo escalonador automático. As novas VMs são executadas durante o limite de tempo especificado. Se a recomendação do escalonador automático for reduzir o número de VMs, o MIG excluirá as VMs mesmo antes que elas atinjam os limites de tempo.
Se você tiver configurado as programações de escalonamento, as VMs serão executadas somente até o final de uma programação ou até uma VM atingir o carimbo de data/hora de encerramento, o que ocorrer primeiro.
A seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-11-21 UTC.
-