O escalonamento automático baseado em programação permite melhorar a disponibilidade das cargas de trabalho programando a capacidade antes da carga prevista. Se você executar a carga de trabalho em um grupo gerenciado de instâncias (MIG, na sigla em inglês), poderá programar um número necessário de instâncias de máquina virtual (VM) para padrões de carga recorrentes, bem como eventos únicos. Use programações de escalonamento se a carga de trabalho demorar muito para ser inicializada e você quiser escalonar horizontalmente antes de picos de carga previstos.
Neste documento, descrevemos como criar, listar, editar, desativar, reativar e excluir programações de escalonamento de um MIG. Para mais informações sobre MIGs e escalonamento automático, consulte Como criar grupos gerenciados de instâncias e Como fazer escalonamento automático de grupos de instâncias.
Antes de começar
- Leia sobre os fundamentos do escalonador automático.
-
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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- É possível ter até 128 programações de escalonamento por MIG. Para atenuar esse limite,
exclua programações de escalonamento que tenham um status
OBSOLETE
e que você não planeja executar novamente. - A duração mínima das programações de escalonamento é de cinco minutos.
No Console do Google Cloud, acesse a página Grupos de instâncias.
Clique no nome de um MIG na lista.
Clique em
Editar.Se não houver configuração de escalonamento automático, faça o seguinte:
- Em Escalonamento automático, clique em Configurar escalonamento automático.
- Em Modo de escalonamento automático, selecione Ativado: adicionar e remover instâncias do grupo para ativar o escalonamento automático. Se você quiser escalonar o MIG com base apenas em programações, exclua a métrica de utilização padrão da CPU depois de adicionar as programações.
Para cada programação de escalonamento que você quer adicionar:
- Expanda a seção Programações de escalonamento automático, clique em Gerenciar programações e em Criar programação.
- No painel Criar programação de escalonamento, insira um Nome.
- Opcional: digite uma Descrição.
- Insira o número mínimo de instâncias necessárias que essa programação fornece quando está ativa.
- Especifique o horário de início e a recorrência da programação de dimensionamento
usando a interface padrão ou, se quiser configurar uma
programação com um horário de início e uma recorrência mais complexos, use uma
expressão cron.
- Interface padrão
- No campo Horário de início, digite ou clique em para selecionar um horário de início.
- No campo Recorrência, selecione a frequência com que a programação se repete. Se você selecionar Todas as semanas ou Todos os meses, use o menu suspenso adicional para selecionar os dias da semana ou o mês em que a programação começou.
- Expressão cron
- Para ativar, clique na opção Usar expressão CRON.
- Insira uma expressão CRON.
- Interface padrão
No campo Fuso horário, selecione um fuso horário.
Nos campos Duração e Unidade de tempo, insira uma duração e selecione uma unidade de tempo correspondente.
Clique em Save. O painel Programações de escalonamento é aberto.
Opcional: é possível criar outra programação de escalonamento clicando em
Criar programação.
Quando terminar de criar as programações, clique em Concluído.
Para fechar a página Grupos de instâncias, clique em Salvar.
MIG_NAME
: o nome de um MIG que tenha uma política de escalonamento automático;MIN_NUM_REPLICAS
: (opcional) o número mínimo de instâncias necessárias para esse MIG. O Google recomenda que você defina esse valor para o número mínimo de instâncias necessárias quando nenhuma programação de escalonamento estiver ativa. Quando você define esse valor como0
e configura o escalonamento automático com programações ou métricas do Cloud Monitoring com uma única série temporal por grupo, o MIG pode ser escalonado para zero VMs. O escalonamento em nenhuma VM não é possível quando a política tem outros sinais, que exigem dados de VM individual, por exemplo, a utilização da CPU;MAX_NUM_REPLICAS
: o número máximo de instâncias que podem ser fornecidas para esse MIG. Opcional para um MIG com uma política de escalonamento automático;SCHEDULE_NAME
: o nome da nova programação de escalonamento;CRON_EXPRESSION
: o horário de início e a recorrência dessa programação formatados como uma expressão cron;DURATION
: o tempo de atividade desta programação em segundos;TIME_ZONE
: (opcional) o fuso horário da IANA para o horário de início da programação, por exemplo,Europe/Paris
. O valor padrão éUTC
.MIN_REQ_REPLICAS
: o número mínimo de instâncias necessárias que essa programação fornece quando está ativa;DESCRIPTION
: (opcional) uma descrição da nova programação de escalonamento;ZONE
ouREGION
: (opcional) a zona ou região em que o MIG está localizado.PROJECT
: o ID do projeto;ZONE
: a zona em que o MIG está localizado;AUTOSCALER_NAME
: o nome de um escalonador automático atual. Geralmente é igual ao nome do MIG.MIN_NUM_REPLICAS
: (opcional) o número mínimo de instâncias necessárias para esse MIG. O Google recomenda que você defina esse valor para o número mínimo de instâncias necessárias quando nenhuma programação de escalonamento estiver ativa. Quando você define esse valor como0
e configura o escalonamento automático com programações ou métricas do Cloud Monitoring com uma única série temporal por grupo, o MIG pode ser escalonado para zero VMs. O escalonamento em nenhuma VM não é possível quando a política tem outros sinais, que exigem dados de VM individual, por exemplo, a utilização da CPU;MAX_NUM_REPLICAS
: o número máximo de instâncias que podem ser fornecidas para esse MIG. Opcional para um MIG com uma política de escalonamento automático;SCHEDULE_NAME
: o nome da nova programação de escalonamento;MIN_REQ_REPLICAS
: o número mínimo de instâncias necessárias que a programação fornece quando está ativa;CRON_EXPRESSION
: o horário de início e a recorrência dessa programação formatados como uma expressão cron;TIME_ZONE
: (opcional) o fuso horário da IANA para o horário de início da programação, por exemplo,Europe/Paris
. O valor padrão éUTC
.DURATION
: o tempo de atividade desta programação em segundos;DESCRIPTION
: (opcional) uma descrição da nova programação de escalonamento;No Console do Google Cloud, acesse a página Grupos de instâncias.
Clique no nome de um MIG na lista.
Clique em
Editar.Veja o número total de programações em Programações de escalonamento automático. Clique em Gerenciar programações para exibir a lista das programações de escalonamento.
MIG_NAME
: o nome de um MIG que tenha uma política de escalonamento automático;ZONE
ouREGION
: (opcional) a zona ou região em que o MIG está localizado.PROJECT
: o ID do projeto;ZONE
: a zona em que o MIG está localizado;AUTOSCALER_NAME
: o nome de um escalonador automático atual. Geralmente é igual ao nome do MIG.No Console do Google Cloud, acesse a página Grupos de instâncias.
Clique no nome de um MIG na lista.
Clique em
Editar.Veja o número total de programações em Programações de escalonamento automático. Clique em Gerenciar programações para exibir a lista das programações de escalonamento.
Marque a caixa de seleção da programação de dimensionamento que você quer editar.
Na parte superior do painel Como escalonar programações, clique em
Editar.No novo painel Editar programação de escalonamento, modifique os campos que você quer alterar. Para mais informações sobre cada campo, consulte Como criar uma programação de escalonamento.
Quando terminar, clique em Salvar.
MIG_NAME
: o nome de um MIG com uma programação de escalonamento existente;SCHEDULE_NAME
: o nome da programação de escalonamento atual;CRON_EXPRESSION
: (opcional) o novo horário de início e a recorrência da programação formatada como uma expressão cron;DURATION
: (opcional) o novo tempo de atividade dessa programação em segundos;TIME_ZONE
: (opcional) o novo fuso horário da IANA para o horário de início da programação, por exemplo,Europe/Paris
. O valor padrão éUTC
.MIN_REQ_REPLICAS
: (opcional) o novo número mínimo de instâncias necessárias que essa programação fornece quando está ativa;DESCRIPTION
: (opcional) uma nova descrição da programação de escalonamento;ZONE
ouREGION
: (opcional) a zona ou região em que o MIG está localizado.PROJECT
: o ID do projeto;ZONE
: a zona em que o MIG está localizado;AUTOSCALER_NAME
: o nome de um escalonador automático atual. Geralmente é igual ao nome do MIG;SCHEDULE_NAME
: o nome da programação de escalonamento atual;MIN_REQ_REPLICAS
: (opcional) o novo número mínimo de instâncias necessárias que essa programação fornece quando está ativa;CRON_EXPRESSION
: (opcional) o novo horário de início e a recorrência da programação formatada como uma expressão cron;TIME_ZONE
: (opcional) o novo fuso horário da IANA para o horário de início da programação, por exemplo,Europe/Paris
. O valor padrão éUTC
.DURATION
: (opcional) o novo tempo de atividade dessa programação em segundos;DESCRIPTION
: (opcional) uma nova descrição da programação de escalonamento.No Console do Google Cloud, acesse a página Grupos de instâncias.
Clique no nome de um MIG na lista.
Clique em
Editar.Veja o número total de programações em Programações de escalonamento automático. Clique em Gerenciar programações para exibir a lista das programações de escalonamento.
Marque as caixas de seleção das programações de escalonamento que você quer desativar ou ativar.
Desativar ou ativar as programações selecionadas.
- Para desativar as programações selecionadas:
- Na parte superior do painel Como escalonar programações, clique em Desativar.
- Na nova caixa de diálogo Desativar programações, clique em Desativar.
- Para ativar as programações selecionadas:
- Na parte superior do painel Como escalonar programações, clique em Ativar.
- Na nova caixa de diálogo Ativar programações, clique em Ativar.
- Para desativar as programações selecionadas:
MIG_NAME
: o nome de um MIG com uma programação de escalonamento existente;SCHEDULE_NAME
: o nome da programação de escalonamento que você quer desativar;ZONE
ouREGION
: (opcional) a zona ou região em que o MIG está localizado.MIG_NAME
: o nome de um MIG com uma programação de escalonamento existente;SCHEDULE_NAME
: o nome da programação de escalonamento que você quer reativar;ZONE
ouREGION
: (opcional) a zona ou região em que o MIG está localizado.PROJECT
: o ID do projeto;ZONE
: a zona em que o MIG está localizado;AUTOSCALER_NAME
: o nome de um escalonador automático atual. Geralmente é igual ao nome do MIG;SCHEDULE_NAME
: o nome da programação de escalonamento que você quer desativar.PROJECT
: o ID do projeto;ZONE
: a zona em que o MIG está localizado;AUTOSCALER_NAME
: o nome de um escalonador automático atual. Geralmente é igual ao nome do MIG;SCHEDULE_NAME
: o nome da programação de escalonamento que você quer reativar.No Console do Google Cloud, acesse a página Grupos de instâncias.
Clique no nome de um MIG na lista.
Clique em
Editar.Veja o número total de programações em Programações de escalonamento automático. Clique em Gerenciar programações para exibir a lista das programações de escalonamento.
Marque as caixas de seleção das programações de escalonamento que você quer excluir.
Na parte superior do painel Como escalonar programações, clique em
Excluir.Na nova caixa de diálogo Excluir programações, clique em Excluir.
MIG_NAME
: o nome de um MIG com uma programação de escalonamento existente;SCHEDULE_NAME
: o nome da programação de escalonamento que você quer excluir;ZONE
ouREGION
: (opcional) a zona ou região em que o MIG está localizado.PROJECT
: o ID do projeto;ZONE
: a zona em que o MIG está localizado;AUTOSCALER_NAME
: o nome de um escalonador automático atual. Geralmente é igual ao nome do MIG;SCHEDULE_NAME
: o nome da programação de escalonamento que você quer excluir.Número mínimo de instâncias necessárias: o número de VMs necessárias no MIG quando essa programação de escalonamento está ativa.
Quando essa programação está ativa, o MIG tem pelo menos esse número de VMs, mas pode ter mais, dependendo de outras configurações de escalonamento automático. Além disso, o tamanho do MIG sempre é restrito pelo número mínimo e máximo de instâncias configuradas nas configurações de escalonamento automático do MIG.
Fuso horário: o fuso horário da IANA de acordo com a localização para interpretar o horário de início da programação.
Uma lista de valores disponíveis é definida pelo banco de dados de fuso horário da IANA. Por exemplo,
Europe/Paris
. Se nenhum fuso horário for informado,UTC
será usado por padrão. Alguns fusos horários da IANA consideram o horário de verão. Para saber como o horário de verão afeta as programações de escalonamento, consulte Horário de verão.Duração: o tempo que você quer que a programação de escalonamento fique ativa.
A programação de dimensionamento fica ativa a partir do horário de início pela duração configurada. A duração mínima é de cinco minutos. Durante esse período, o escalonador automático escalona o MIG para ter pelo menos o número de VMs definido pelas instâncias necessárias da programação. Após a duração determinada, se a capacidade atual não for mais necessária, o escalonador automático começará a remover instâncias de VM após um período de estabilização padrão de 10 minutos e seguindo os controles de escalonamento configurados.
As programações de escalonamento são bidirecionais. As VMs são removidas no horário de término especificado e o tamanho do grupo é reduzido ao tamanho mínimo do grupo que você definiu, a menos que você tenha especificado outros sinais de escalonamento automático.
Horário de início: o horário em que você quer que a programação de dimensionamento se torne ativa.
No horário de início, a programação de escalonamento começa a criar VMs sempre que o tamanho do MIG for menor que as instâncias necessárias. Defina o tempo de início para que haja tempo suficiente para que novas VMs sejam inicializadas e inicializadas. Por exemplo, se a carga de trabalho demorar 10 minutos após a criação da VM começar a ser veiculada, defina o horário de início como 10 minutos antes do horário em que as VMs precisarão estar prontas.
Recorrência: se e com que frequência a programação de dimensionamento se repete, conforme definido pelas seguintes opções:
- Uma vez: uma programação única que começa somente na data selecionada.
- Todos os dias: uma programação repetida que começa todos os dias.
- Toda semana: uma programação repetida que começa toda semana nos dias selecionados da semana, por exemplo, todas as segundas-feiras.
- Todo mês: uma programação repetida que começa todos os meses nos dias selecionados, por exemplo, no primeiro dia de cada mês. Os últimos dias do mês (dias 29 a 31) só são eficazes nos meses em que ocorrem.
- O espaço em branco é usado para separar os campos de uma expressão cron. Portanto, não adicione espaços em branco em um campo que use caracteres especiais.
- Quando você determina um dia da semana e um dia do mês (quando nenhum
dos campos estiver definido como
*
), a programação usa a união desses valores, não a interseção. Por exemplo, a programação0 8 1 * Mon
começa às 8h de cada segunda-feira e no primeiro dia de cada mês. Essa programação não começa às 8h somente às segundas-feiras que também são o primeiro dia do mês. - É possível usar zero ou mais caracteres especiais em
cada campo de uma expressão cron.
Por exemplo, se você quiser que uma programação seja iniciada a cada mês, exceto em maio,
defina o campo de mês como
1-4,6-12
(uma lista de dois intervalos sem espaço em branco). - Se usar intervalos (
-
), não será possível usar0-7
ouSun-Sun
no campo de dia da semana. Para determinar todos os dias da semana, use*
,0-6
,1-7
,Sun-Sat
ouMon-Sun
. - Ao usar etapas (
/
), lembre-se de que as expressões cron são sem estado, de modo que as etapas podem não ser uniformes. Por exemplo, se você quiser que uma programação seja executada a cada seis horas, defina o campo de horas como*/6
, que se comporta da mesma forma que a listagem de todos os múltiplos válidos de seis (0,6,12,18
). As etapas são pares porque 24 horas são facilmente divididas em partes de seis horas. No entanto, se você definir o campo de horas como*/7
, a programação nem sempre será iniciada em intervalos de 7 horas. Em vez disso,*/7
se comporta da mesma maneira que listar todos os múltiplos de 7 (0,7,14,21
), o que significa que a programação pode começar às 0h, 7h, 14h e 21h. - Status (
state
): o status atual da programação de dimensionamento, representado por um dos seguintes estados:- Pronta (
READY
): esta programação está pronta, mas ainda não está ativa. O escalonador automático está aguardando a próxima ocorrência desta programação. - Ativa (
ACTIVE
): essa programação está ativa no momento. O escalonador automático está tentando fornecer a esse MIG pelo menos as instâncias necessárias que esta programação determina. - Obsoleta (
OBSOLETE
): esta programação expirou. Ela não ficará ativa novamente. O escalonador automático ignora esta programação porque não haverá ocorrências futuras. - Desativada (
DISABLED
): esta programação não pode ser ativada porque foi desativada manualmente. O escalonador automático ignorará esta programação até que ela seja reativada.
- Pronta (
- Última ocorrência (
lastStartTime
): o carimbo de data/hora da última vez em que esta programação de escalonamento ficou ativa. Esta é a data e a hora reais da última ativação. Por exemplo, se uma programação de escalonamento com recorrência diária, um horário de início de 10h e uma duração de duas horas estiver desativada, e você reativar a programação às 11h de hoje,lastStartTime
será hoje às 11h. - Próxima ocorrência (
nextStartTime
): o carimbo de data/hora da próxima vez em que esta programação está definida para ficar ativa. - As programações que estão ativas durante a hora ignorada ainda são executadas durante toda a duração, mas, para compensar pela hora ignorada, essas programações terminam uma hora mais tarde do que seu horário de término em dias sem transições de horário de verão. Normalmente, o horário de término de uma programação é a soma do horário de início e da duração dela. Mas, se o horário de verão pular uma hora enquanto uma programação estiver ativa e a duração e o tempo de início permanecerem constantes, o horário de término da programação será 1 hora a mais do que a soma do horário de início da programação e duração do anúncio.
- As programações configuradas para serem iniciadas durante a hora ignorada também começam uma hora depois do horário de início em dias sem transições do horário de verão.
- Programações ativas durante a hora de repetição ainda são executadas durante toda a duração, mas, para compensar pela hora de repetição, essas programações terminam uma hora antes da hora de término em dias sem transições do horário de verão. Normalmente, o horário de término de uma programação é a soma do horário de início e da duração dela. Mas, se o horário de verão repetir uma hora enquanto uma programação estiver ativa e a duração e o tempo de início permanecerem constantes, o horário de término da programação será 1 hora a menos do que a soma do horário de início da programação e duração do anúncio.
- As programações que estão configuradas para iniciar durante o período de transição começam no horário configurado, mas não são reiniciadas durante o segundo, repetidas ocorrências do horário de início.
- Saiba mais sobre como usar uma política de escalonamento automático com vários sinais.
- Saiba mais sobre como gerenciar escalonadores automáticos.
- Saiba como funcionam as decisões do escalonador automático.
- Saiba como fazer o escalonamento automático de MIGs com base em outros tipos de sinais de escalonamento automático:
Terraform
Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a gcloud CLI e, em seguida, configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
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.
Limitações
As programações de escalonamento são restritas pelas limitações de todos os escalonadores automáticos e pelas seguintes limitações:
Como criar uma programação de escalonamento
É possível criar até 128 programações de escalonamento por MIG. Para mais informações, consulte Como escalonar configurações de programação.
Nas instruções a seguir, explicamos como criar uma programação de escalonamento para um MIG.
Console
gcloud
Para adicionar uma programação de escalonamento a um MIG que não tenha uma política de escalonamento automático, use o comando
gcloud compute instance-groups managed set-autoscaling
.gcloud compute instance-groups managed set-autoscaling MIG_NAME \ [--min-num-replicas=MIN_NUM_REPLICAS] \ --max-num-replicas=MAX_NUM_REPLICAS \ --set-schedule=SCHEDULE_NAME \ --schedule-cron="CRON_EXPRESSION" \ --schedule-duration-sec=DURATION \ [--schedule-time-zone="TIME_ZONE"] \ --schedule-min-required-replicas=MIN_REQ_REPLICAS \ [--schedule-description="DESCRIPTION"] \ [--zone=ZONE | --region=REGION]
Para adicionar uma programação de escalonamento a um MIG que tenha uma política de escalonamento automático, use o comando
gcloud compute instance-groups managed update-autoscaling
.gcloud compute instance-groups managed update-autoscaling MIG_NAME \ [--min-num-replicas=MIN_NUM_REPLICAS] \ [--max-num-replicas=MAX_NUM_REPLICAS] \ --set-schedule=SCHEDULE_NAME \ --schedule-cron="CRON_EXPRESSION" \ --schedule-duration-sec=DURATION \ [--schedule-time-zone="TIME_ZONE"] \ --schedule-min-required-replicas=MIN_REQ_REPLICAS \ [--schedule-description="DESCRIPTION"] \ [--zone=ZONE | --region=REGION]
Substitua:
É possível criar programações que são executadas uma vez ou que se repetem periodicamente.
Programação recorrente
Este comando de exemplo cria uma programação que se repete. Essa programação determina que você quer que o MIG contenha pelo menos 10 instâncias de VM todas as segundas, terças, quartas, quintas e sextas das 8h30 às 17h (UTC). Esse comando também usa as sinalizações
--min-num-replicas
e--max-num-replicas
para atualizar o número mínimo de instâncias para 0 e o número máximo de instâncias para 30 em todos os sinais de escalonamento automático do MIG selecionado. Esse comando pressupõe que você tenha um MIG denominadoexample-mig
com uma política de escalonamento automático.gcloud compute instance-groups managed update-autoscaling example-mig \ --min-num-replicas=0 \ --max-num-replicas=30 \ --set-schedule=workday-capacity \ --schedule-cron="30 8 * * Mon-Fri" \ --schedule-duration-sec=30600 \ --schedule-min-required-replicas=10 \ --schedule-description="Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC"
Programação única
Este comando de exemplo cria uma programação que é executada uma vez. Essa programação determina que você quer que o MIG contenha pelo menos 30 instâncias de VM durante todo o dia 30 de janeiro de 2030 no fuso horário
America/New_York
. Esse comando pressupõe que você tenha um MIG denominadoexample-mig
emus-east1-b
que tenha uma política de escalonamento automático.gcloud compute instance-groups managed update-autoscaling example-mig \ --set-schedule=example-onetime-schedule \ --schedule-cron="0 0 30 1 * 2030" \ --schedule-duration-sec=86400 \ --schedule-time-zone="America/New_York" \ --schedule-min-required-replicas=30 \ --schedule-description="Schedule a minimum of 30 VMs all day for January 30, 2030" \ --zone=us-east1-b
Terraform
Para adicionar uma programação de escalonamento a um MIG, use o recurso
google_compute_autoscaler
.Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
REST
Para criar um escalonador automático com programações de escalonamento para um MIG, use o método
autoscalers.insert
para um MIG zonal ou o métodoregionAutoscalers.insert
para um MIG regional.Faça a seguinte chamada para criar uma programação para um MIG zonal que não tenha uma política de escalonamento automático:
POST https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers/ { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "minNumReplicas": MIN_NUM_REPLICAS, "maxNumReplicas": MAX_NUM_REPLICAS, "scalingSchedules": { "SCHEDULE_NAME": { "minRequiredReplicas": MIN_REQ_REPLICAS, "schedule": "CRON_EXPRESSION", "timeZone": "TIME_ZONE", "durationSec": DURATION, "description": "DESCRIPTION" }, ... } } }
Para criar programações para um MIG que tenha uma política de escalonamento automático, use o método
autoscalers.patch
para um MIG zonal ou o métodoregionAutoscalers.patch
para um MIG regional.Por exemplo, faça a seguinte chamada para criar uma programação para um MIG zonal que tenha uma política de escalonamento automático:
PATCH https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME { "autoscalingPolicy": { "minNumReplicas": MIN_NUM_REPLICAS, "maxNumReplicas": MAX_NUM_REPLICAS, "scalingSchedules": { "SCHEDULE_NAME": { "minRequiredReplicas": MIN_REQ_REPLICAS, "schedule": "CRON_EXPRESSION", "timeZone": "TIME_ZONE", "durationSec": DURATION, "description": "DESCRIPTION" }, ... } } }
Substitua:
É possível criar programações que são executadas uma vez ou que se repetem periodicamente.
Programação recorrente
Esta chamada de API de exemplo cria uma programação que se repete. Essa programação determina que você quer que um MIG zonal contenha pelo menos 10 instâncias de VM todas as segundas, terças, quartas, quintas e sextas das 8h30 às 17h (UTC). Essa chamada de API também usa os campos
minNumReplicas
emaxNumReplicas
para atualizar o número mínimo de instâncias para 0 e o número máximo de instâncias para 30 em todos os sinais de escalonamento automático do MIG selecionado. Essa chamada de API presume que você tenha um projeto chamadoexample-project
com um MIG zonal que esteja localizado emus-east1-b
e tenha um escalonador automático chamadoexample-autoscaler
com uma política de escalonamento automático.PATCH https://www.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler { "autoscalingPolicy": { "minNumReplicas": 0, "maxNumReplicas": 30, "scalingSchedules": { "workday-capacity": { "minRequiredReplicas": 10, "schedule": "30 8 * * Mon-Fri", "durationSec": 30600, "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC" } } } }
Para usar este exemplo em um MIG regional, faça uma solicitação semelhante usando o método
regionAutoscalers.patch
e especifique uma região em vez de uma zona.Programação única
Esta chamada de API de exemplo cria uma programação que é executada uma vez. Essa programação determina que você quer que um MIG zonal contenha pelo menos 30 instâncias de VM durante todo o dia 30 de janeiro de 2030 no fuso horário
America/New_York
. Essa chamada de API presume que você tenha um projeto chamadoexample-project
com um MIG zonal que esteja localizado emus-east1-b
e tenha um escalonador automático chamadoexample-autoscaler
com uma política de escalonamento automático.PATCH https://www.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler { "autoscalingPolicy": { "scalingSchedules": { "example-onetime-schedule": { "minRequiredReplicas": 30, "schedule": "0 0 30 1 * 2030", "timeZone": "America/New_York", "durationSec": 86400, "description": "Schedule a minimum of 30 VMs all day for January 30, 2030" } } } }
Para usar este exemplo em um MIG regional, faça uma solicitação semelhante usando o método
regionAutoscalers.patch
e especifique uma região em vez de uma zona.Várias programações
Esta chamada de API de exemplo usa o método
autoscalers.patch
para duas programações,workday-capacity
ejanuary-30-2030-schedule
, em uma única chamada. Essa chamada de API presume que você tenha um projeto chamadoexample-project
com um MIG zonal que esteja localizado emus-east1-b
e tenha um escalonador automático chamadoexample-autoscaler
com uma política de escalonamento automático.PATCH https://www.googleapis.com/compute/v1/projects/example-project/zones/us-east1-b/autoscalers?autoscaler=example-autoscaler { "autoscalingPolicy": { "scalingSchedules": { "workday-capacity": { "minRequiredReplicas": 10, "schedule": "30 8 * * Mon-Fri", "durationSec": 30600, "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC" }, "january-30-2030-schedule": { "minRequiredReplicas": 30, "schedule": "0 0 30 1 * 2030", "timeZone": "America/New_York", "durationSec": 86400, "description": "Schedule a minimum of 30 VMs all day for January 30, 2030" } } } }
Para usar este exemplo em um MIG regional, faça uma solicitação semelhante usando o método
regionAutoscalers.patch
e especifique uma região em vez de uma zona.Depois que uma programação é criada, pode ser necessário aguardar alguns minutos para ver as informações de status dela.
Como listar programações de escalonamento
É possível ver uma lista das programações de um MIG. A lista mostra as configurações e as informações de status de cada programação.
Console
Quando terminar, clique em Concluído para fechar a lista.
gcloud
Para ver detalhes de um MIG, incluindo as configurações e os status das programações de escalonamento, use o comando
gcloud compute instance-groups managed describe
.gcloud compute instance-groups managed describe MIG_NAME \ [--zone=ZONE | --region=REGION]
Substitua:
Todas as programações de escalonamento do MIG são listadas na saída, conforme mostrado no exemplo a seguir.
... autoscalingPolicy: ... maxNumReplicas: 30 minNumReplicas: 0 ... scalingSchedules: example-onetime-schedule: description: Schedule a minimum of 30 VMs all day for January 30, 2030 disabled: false durationSec: 86400 minRequiredReplicas: 30 schedule: 0 0 30 1 * 2030 timeZone: America/New_York workday-capacity: description: Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC disabled: false durationSec: 30600 minRequiredReplicas: 10 schedule: 30 8 * * Mon-Fri timeZone: UTC ... scheduledScalingStatus: example-onetime-schedule: state: READY nextStartTime: '2030-01-30T00:00:00.000-05:00' lastStartTime: '' workday-capacity: state: READY nextStartTime: '2020-11-04T08:30:00.000-00:00' lastStartTime: '2020-11-03T08:30:00.000-00:00' ...
REST
Para ver detalhes de um escalonador automático, incluindo as configurações e os status das programações de escalonamento, use o método
autoscalers.get
para um MIG zonal ou o métodoregionAutoscalers.get
para um MIG regional.Por exemplo, faça a seguinte chamada para listar as programações de um MIG zonal que tenha uma política de escalonamento automático:
GET https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME
Substitua:
Todas as programações de escalonamento do MIG são listadas na saída, conforme mostrado no exemplo a seguir.
{ ... "autoscalingPolicy": { ... "minNumReplicas": 0, "maxNumReplicas": 30, ... "scalingSchedules": { "example-onetime-schedule": { "minRequiredReplicas": 30, "schedule": "0 0 30 1 * 2030", "timeZone": "America/New_York", "durationSec": 86400, "description": "Schedule a minimum of 30 VMs all day for January 30, 2030", "disabled": false }, "workday-capacity": { "minRequiredReplicas": 10, "schedule": "30 8 * * Mon-Fri", "timeZone": "", "durationSec": 30600, "description": "Have at least 10 VMs every Monday through Friday from 8:30 AM to 5 PM UTC", "disabled": false }, ... } }, "scheduledScalingStatus": { "example-onetime-schedule": { "state": "READY", "nextStartTime": "2030-01-30T00:00:00.000-05:00", "lastStartTime": '' }, "workday-capacity": { "state": "READY", "nextStartTime": "2020-11-04T08:30:00.000", "lastStartTime": "2020-11-03T08:30:00.000" }, ... }, ... }
Como editar uma programação de escalonamento
É possível editar uma programação de escalonamento para alterar qualquer uma das configurações dela, exceto o nome da programação. Também é possível desativar ou reativar uma programação de escalonamento.
Console
Talvez seja necessário aguardar alguns minutos para que as alterações entrem em vigor. Para monitorar o status das programações, clique em
Atualizar na parte superior do painel Como escalonar programações.Quando terminar, clique em Concluído para fechar a lista.
gcloud
Para atualizar uma programação de escalonamento, use o comando
gcloud compute instance-groups managed update-autoscaling
. Use a sinalização--update-schedule
para indicar o nome da programação a ser atualizada. Inclua as outras sinalizações conforme necessário para suas alterações.gcloud compute instance-groups managed update-autoscaling MIG_NAME \ --update-schedule=SCHEDULE_NAME \ [--schedule-cron="CRON_EXPRESSION"] \ [--schedule-duration-sec=DURATION] \ [--schedule-time-zone="TIME_ZONE"] \ [--schedule-min-required-replicas=MIN_REQ_REPLICAS] \ [--schedule-description="DESCRIPTION"] \ [--zone=ZONE | --region=REGION]
Substitua:
REST
Para atualizar as programações existentes de escalonamento de um MIG, use o método
autoscalers.patch
para um MIG zonal ou o métodoregionAutoscalers.patch
para um MIG regional.Por exemplo, faça a seguinte chamada para editar uma programação para um MIG zonal que tenha uma política de escalonamento automático:
PATCH https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME { "autoscalingPolicy": { "scalingSchedules": { "SCHEDULE_NAME": { "minRequiredReplicas": MIN_REQ_REPLICAS, "schedule": "CRON_EXPRESSION", "timeZone": "TIME_ZONE", "durationSec": DURATION, "description": "DESCRIPTION" }, ... } } }
Substitua:
Como desativar e reativar uma programação de escalonamento
As programações de escalonamento ficam ativadas por padrão. Desative a programação se quiser impedir que ela fique ativa, mas quiser salvar a configuração. Quando quiser usar essa programação novamente, reative-a.
Se você não precisar armazenar a programação ou se tiver atingido o limite de 128 programações para esse MIG, exclua a programação. Se você quiser desativar o escalonamento automático de um MIG, desative o escalonamento automático.
Console
Talvez seja necessário aguardar alguns minutos para que as alterações entrem em vigor. Para monitorar o status das programações, clique em
Atualizar na parte superior do painel Como escalonar programações.Quando terminar, clique em Concluído para fechar a lista.
gcloud
Para desativar ou reativar uma programação de escalonamento, use o comando
gcloud compute instance-groups managed update-autoscaling
.Como desativar uma programação de escalonamento
Para desativar uma programação de escalonamento, use a sinalização
--disable-schedule
.gcloud compute instance-groups managed update-autoscaling MIG_NAME \ --disable-schedule=SCHEDULE_NAME \ [--zone=ZONE | --region=REGION]
Substitua:
Como reativar uma programação de escalonamento
Para reativar uma programação de escalonamento, use a sinalização
--enable-schedule
.gcloud compute instance-groups managed update-autoscaling MIG_NAME \ --enable-schedule=SCHEDULE_NAME \ [--zone=ZONE | --region=REGION]
Substitua:
REST
Para desativar ou reativar as programações de escalonamento de um MIG, use o método
autoscalers.patch
para um MIG zonal ou o métodoregionAutoscalers.patch
para um MIG regional.Como desativar programações de escalonamento
Para cada programação de escalonamento que você quiser desativar, defina o campo
disabled
comotrue
. Por exemplo, faça a seguinte chamada para desativar uma programação para um MIG zonal que tenha uma política de escalonamento automático:PATCH https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME { "autoscalingPolicy": { "scalingSchedules": { "SCHEDULE_NAME": { "disabled": true }, ... } } }
Substitua:
Como reativar programações de escalonamento
Para cada programação de escalonamento que você quiser reativar, defina o campo
disabled
comofalse
. Por exemplo, faça a seguinte chamada para reativar uma programação para um MIG zonal que tenha uma política de escalonamento automático:PATCH https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME { "autoscalingPolicy": { "scalingSchedules": { "SCHEDULE_NAME": { "disabled": false }, ... } } }
Substitua:
Como excluir uma programação de escalonamento
Remova as programações de escalonamento de um MIG excluindo-as. Exclua as programações que você não precisa mais, como aquelas com um status
OBSOLETE
.Uma política de escalonamento automático precisa ter pelo menos um sinal de escalonamento. Se não houver outro sinal de escalonamento automático, não será possível excluir todas as programações de escalonamento sem excluir toda a política de escalonamento automático. Se você quiser excluir todas as programações de escalonamento, mas manter a política de escalonamento automático, adicione pelo menos um sinal desse tipo antes de excluir todas as programações.
Para evitar que uma programação se torne ativa e salvá-la para uso futuro, desative a programação. Se você quiser excluir a configuração de escalonamento automático de um MIG, exclua o escalonador automático.
Console
Talvez seja necessário aguardar alguns minutos para que as alterações entrem em vigor. Para monitorar o status das programações, clique em
Atualizar na parte superior do painel Como escalonar programações.Quando terminar, clique em Concluído para fechar a lista.
gcloud
Para excluir uma programação de escalonamento, use o comando
gcloud compute instance-groups managed update-autoscaling
com a sinalização--remove-schedule
.gcloud compute instance-groups managed update-autoscaling MIG_NAME \ --remove-schedule=SCHEDULE_NAME \ [--zone=ZONE | --region=REGION]
Substitua:
REST
Para excluir as programações de escalonamento de um MIG, use o método
autoscalers.patch
para um MIG zonal ou o métodoregionAutoscalers.patch
para um MIG regional. Para cada programação de escalonamento que você quiser excluir, defina a configuração da programação comonull
.Por exemplo, faça a seguinte chamada para excluir uma programação de um MIG zonal que tenha uma política de escalonamento automático:
PATCH https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME { "autoscalingPolicy": { "scalingSchedules": { "SCHEDULE_NAME": null ... } } }
Substitua:
Conceitos
Nesta seção, descrevemos conceitos relacionados à criação e ao uso de programações de escalonamento, incluindo configurações de programação e detalhes sobre como elas funcionam.
Como escalonar as configurações de programação
Se você criar e modificar as programações de escalonamento de um MIG, cada programação conterá as seguintes configurações:
Ao usar a CLI do Google Cloud ou a REST, é necessário configurar o horário de início e a recorrência de uma programação de escalonamento usando uma expressão cron. No entanto, ao usar o console do Google Cloud, é possível configurar o horário de início e a recorrência de uma programação usando uma expressão cron ou as seguintes configurações:
Expressões cron
É possível configurar o horário de início e a recorrência de uma programação de escalonamento usando uma expressão cron. O Cron é um programador de jobs baseado em tempo usado originalmente em sistemas operacionais de computador no estilo do Unix.
Sintaxe
A expressão cron é uma string que contém cinco ou seis campos separados por espaços em branco. A tabela a seguir define os campos de uma expressão cron e os possíveis valores para cada campo.
Minuto Hora Dia do mês Mês Dia da semana Ano (opcional) 0-59 0-23 1-31 1 a 12 (janeiro a dezembro)
em que1
=Jan
,2
=Feb
, ...12
=Dec
.0 a 6 (domingo a sábado) ou 1 a 7 (segunda a domingo)
em que0
=Sun
,1
=Mon
, ...6
=Sat
,7
=Sun
2000 a 2036
ou a cada ano (*
) se não for fornecidoAlém de usar esses valores, cada campo em uma expressão cron também pode usar caracteres especiais:
Caractere especial Significado Exemplo *
qualquer um Se os campos de dia do mês, dia da semana e ano (se incluído) forem definidos como *
, a programação começará diariamente.-
Intervalo Se o campo de dia da semana estiver definido como 1-5
ouMon-Fri
, a programação começará toda semana de segunda a sexta-feira.,
lista Se o campo de mês estiver definido como 5,7,9
ouMay,Jul,Sep
, a programação começará a cada mês de maio, julho e setembro./
etapa Se o campo de mês estiver definido como */3
, a programação começará durante o primeiro mês e a cada três meses depois disso: janeiro, abril, julho e outubro.Ao escrever uma expressão cron, considere o seguinte:
Programações recorrentes x programações únicas
Dependendo de como você escreve a expressão cron, sua programação pode ser executada uma vez ou periodicamente. Para criar uma programação que seja executada apenas uma vez, especifique o campo do ano. Por exemplo, a expressão cron
0 0 30 1 * 2030
configura uma programação para iniciar somente uma vez, à meia-noite do dia 30 de janeiro de 2030. Para criar uma programação que se repita, use caracteres especiais para descrever quando ela será repetida. Por exemplo, a expressão cron30 8 * * Mon-Fri
configura uma programação para iniciar às 8h30 todas as segundas, terças, quartas, quintas e sextas-feiras.Informações de status da programação
Liste suas programações de escalonamento para ver o status delas. Uma programação de escalonamento tem as seguintes informações de status:
Programações sobrepostas
Dependendo do horário de início, da recorrência, da duração e do fuso horário, duas ou mais programações de escalonamento podem se sobrepor. Quando há mais de uma programação ativa, o escalonador automático usa o maior número de instâncias de VM necessárias de todas as programações de escalonamento ativas. Isso garante que sempre haja capacidade suficiente para atender às necessidades de qualquer programação ativa. Por exemplo, se você tiver uma programação que aconteça todos os dias das 8h às 10h que requeira pelo menos 10 VMs, mas também tiver uma programação única de um dia inteiro que exija pelo menos 20 VMs, o escalonador automático ajustará o MIG para pelo menos 20 VMs nesse dia. Isso é útil quando você tem requisitos de capacidade recorrentes e regulares, mas às vezes precisa de mais para processar eventos únicos. Esse comportamento permite programar a capacidade sem se preocupar com a substituição por outras programações com requisitos de VM menores.
Além disso, um escalonador automático sempre fornece o maior número de instâncias de VM exigido por qualquer sinal de escalonamento automático ativo. Para mais informações, consulte Como usar uma política de escalonamento automático com vários sinais.
Horário de verão
Os detalhes do horário de verão variam de acordo com o fuso horário da IANA baseado no local da programação de escalonamento. Se o fuso horário da sua programação estiver observando o horário de verão, o horário de início será ajustado automaticamente para permanecer sincronizado com o horário do local selecionado. Por exemplo, se você criar uma programação de escalonamento que comece todos os dias às 7h para o fuso horário
America/New_York
, essa programação será iniciada sempre que for 7h em Nova York, usando o horário de verão do leste dos EUA ou o horário padrão do leste dos EUA.As programações de dimensionamento sempre são executadas por toda a duração que você configurar, mas elas podem ter horários de início e término um pouco diferentes nos dias em que a observação do horário de verão é alterada. Isso ocorre porque as chaves de horário de verão têm períodos de transição que são ignorados no primeiro dia do horário de verão e que ocorrem duas vezes no último dia. Por exemplo, se o horário de verão do seu fuso horário começar às 2h e tiver uma transição de uma hora, o relógio mudará de 1h59min59s para 3h, de modo que o período de 2h para 2:59:59 é ignorado. Se o horário de verão para esse fuso horário terminar às 2h, o relógio muda de 2h59m59s para 2h, então o período de 2h para 2h59 é repetido. As instruções a seguir pressupõem que o fuso horário da sua programação usa uma transição de horário de verão de 1 hora.
No primeiro dia do horário de verão (quando uma hora é ignorada), as programações de dimensionamento têm as seguintes alterações:
No último dia do horário de verão (quando uma hora é repetida), as programações de dimensionamento têm as seguintes alterações:
A maioria dos fusos horários que observa o horário de verão usa um período de transição de uma hora. Mas, se o fuso horário da sua programação usar um período de transição diferente, como o fuso horário
Australia/Lord_Howe
, que usa transições de 30 minutos, poderá haver o mesmo comportamento. Basta substituir 1 hora pelo tempo de transição relevante do horário de verão.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-12 UTC.
-