Dimensionamento com base em cronogramas


O escalonamento automático baseado em agendamento permite melhorar a disponibilidade de suas cargas de trabalho agendando a capacidade antes da carga prevista. Se você executar sua carga de trabalho em um grupo de instâncias gerenciadas (MIG), poderá agendar um número necessário de instâncias de máquina virtual (VM) para padrões de carga recorrentes, bem como eventos únicos. Use agendas de escalabilidade se sua carga de trabalho demorar muito para inicializar e você quiser escalar antes dos picos de carga previstos.

Este documento descreve como você pode criar, listar, editar, desativar, reativar e excluir programações de escalabilidade para um MIG existente. Para obter mais informações sobre MIGs e escalonamento automático, consulte Criação de grupos de instâncias gerenciadas e Dimensionamento automático de grupos de instâncias .

Antes de começar

  • Leia sobre os fundamentos do escalonador automático.
  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:

    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

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. 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.

      1. Install the Google Cloud CLI.
      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. 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.

        If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.

      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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      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 , bem como pelas seguintes limitações:

  • Você pode ter até 128 programações de escalonamento por MIG. Para atenuar esse limite, exclua planejamentos de escalabilidade que tenham status OBSOLETE e que você não planeja executar novamente.
  • A duração mínima para programações de escalonamento é de 5 minutos.

Criando um cronograma de escalonamento

Você pode criar até 128 programações de escalonamento por MIG. Para obter mais informações, consulte Dimensionamento das configurações de agendamento .

As instruções a seguir explicam como criar uma programação de escalabilidade para um MIG.

Console

  1. No console do Google Cloud, acesse a página Grupos de instâncias .

    Vá para grupos de instâncias

  2. Clique no nome de um MIG na lista.

  3. Clique em Editar .

  4. Se não existir nenhuma configuração de escalonamento automático:

    1. Em Dimensionamento automático , clique em Configurar dimensionamento automático .
    2. Em Modo de escalonamento automático , selecione Ativado: adicione e remova instâncias do grupo para ativar o escalonamento automático. Se você quiser dimensionar seu MIG com base apenas em agendamentos, exclua a métrica de utilização de CPU padrão depois de adicionar os agendamentos.
  5. Para cada programação de escalabilidade que você deseja adicionar:

    1. Expanda a seção Programações de escalonamento automático , clique em Gerenciar programações e, em seguida, clique em Criar programação .
    2. No painel Criar agendamento de escalabilidade , insira um Nome .
    3. Opcional: Insira uma Descrição .
    4. Insira o número mínimo de instâncias necessárias que este planejamento fornece quando está ativo.
    5. Especifique o horário de início e a recorrência do seu planejamento de escalabilidade usando a interface padrão ou, se desejar configurar um agendamento com horário de início e recorrência mais complexos, usando uma expressão cron .
      • Interface padrão
        1. No campo Hora de início , digite ou clique em para selecionar uma hora de início.
        2. No campo Recorrência , selecione a frequência com que o agendamento se repete. Se você selecionar Toda semana ou Todo mês , use o menu suspenso adicional para selecionar em quais dias da semana ou mês a programação começa.
      • Expressão Cron
        1. Para ativar, clique no botão Usar expressão CRON .
        2. Insira uma expressão CRON .
    6. No campo Fuso horário , selecione um fuso horário.

    7. Nos campos Duração e Unidade de tempo , insira uma duração e selecione uma unidade de tempo correspondente.

    8. Clique em Salvar . O painel Dimensionamento de cronogramas é aberto.

    9. Opcional: você pode criar outro planejamento de escalabilidade clicando em Criar agendamento .

  6. Quando terminar de criar programações, clique em Concluído .

  7. Para fechar a página Grupos de instâncias , clique em Salvar .

gcloud

Para adicionar uma programação de escalonamento a um MIG que não tem uma política de escalonamento automático existente, 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 com uma política de escalonamento automático existente, 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 o seguinte:

  • MIG_NAME : o nome de um MIG com uma política de escalonamento automático existente.
  • MIN_NUM_REPLICAS : Opcional: o número mínimo de instâncias necessárias para este MIG. O Google recomenda definir 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 como 0 e configura o escalonamento automático com programações ou métricas do Cloud Monitoring com séries temporais únicas por grupo, seu MIG pode ser escalonado para 0 VMs. A redução vertical para 0 VMs não é possível quando a política tem outros sinais, que requerem dados de VM individuais, por exemplo, utilização da CPU.
  • MAX_NUM_REPLICAS : o número máximo de instâncias que podem ser fornecidas para este MIG. Opcional para um MIG com uma política de escalonamento automático existente.
  • SCHEDULE_NAME : o nome da nova programação de escalonamento.
  • CRON_EXPRESSION : o horário de início e recorrência deste agendamento formatado como uma expressão cron .
  • DURATION : a duração , em segundos, que este agendamento está ativo.
  • 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 este agendamento fornece quando está ativo.
  • DESCRIPTION : Opcional: uma descrição do novo cronograma de escalabilidade.
  • ZONE ou REGION : Opcional: a zona ou região onde seu MIG está localizado.

Você pode criar programações que sejam executadas uma vez ou que sejam repetidas periodicamente.

Programação repetida

Este comando de exemplo cria um agendamento que se repete. Essa programação especifica que você deseja que seu MIG contenha pelo menos 10 instâncias de VM todas as segundas, terças, quartas, quintas e sextas-feiras, das 8h30 às 17h, Horário Universal Coordenado (UTC). Este comando também usa os sinalizadores --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 para todos os sinais de escalonamento automático do MIG selecionado. Este comando pressupõe que você tenha um MIG existente denominado example-mig com uma política de escalonamento automático existente.

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"

Agendamento único

Este comando de exemplo cria um planejamento que é executado uma vez. Essa programação especifica que você deseja que seu MIG contenha pelo menos 30 instâncias de VM durante todo o dia em 30 de janeiro de 2030 para o fuso horário America/New_York . Este comando pressupõe que você tenha um MIG existente chamado example-mig localizado em us-east1-b e que tenha uma política de escalonamento automático existente.

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

Terraforma

Para adicionar uma programação de escalonamento a um MIG, use o recurso google_compute_autoscaler .

resource "google_compute_autoscaler" "default" {
  provider = google-beta
  name     = "my-autoscaler"
  zone     = "us-central1-f"
  target   = google_compute_instance_group_manager.default.id

  autoscaling_policy {
    max_replicas    = 5
    min_replicas    = 1
    cooldown_period = 60

    scaling_schedules {
      name                  = "every-weekday-morning"
      description           = "Increase to 2 every weekday at 7AM for 12 hours."
      min_required_replicas = 2
      schedule              = "0 7 * * MON-FRI"
      time_zone             = "America/New_York"
      duration_sec          = 43200
    }
  }
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform .

DESCANSAR

Para criar um escalonador automático com programações de escalabilidade para um MIG, use o método autoscalers.insert para um MIG zonal ou o método regionAutoscalers.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 existente:

POST https://compute.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 existente, use o método autoscalers.patch para um MIG zonal ou o método regionAutoscalers.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 existente:

PATCH https://compute.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 o seguinte:

  • PROJECT : seu ID do projeto .
  • ZONE : a zona onde seu MIG está localizado.
  • AUTOSCALER_NAME : o nome de um escalonador automático existente. Geralmente é igual ao nome do MIG.
  • MIN_NUM_REPLICAS : Opcional: o número mínimo de instâncias necessárias para este MIG. O Google recomenda definir 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 como 0 e configura o escalonamento automático com programações ou métricas do Cloud Monitoring com séries temporais únicas por grupo, seu MIG pode ser escalonado para 0 VMs. A redução vertical para 0 VMs não é possível quando a política tem outros sinais, que requerem dados de VM individuais, por exemplo, utilização da CPU.
  • MAX_NUM_REPLICAS : o número máximo de instâncias que podem ser fornecidas para este MIG. Opcional para um MIG com uma política de escalonamento automático existente.
  • SCHEDULE_NAME : o nome da nova programação de escalonamento.
  • MIN_REQ_REPLICAS : as instâncias mínimas necessárias que este agendamento fornece quando está ativo.
  • CRON_EXPRESSION : o horário de início e recorrência deste agendamento formatado 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 : a duração , em segundos, que este agendamento está ativo.
  • DESCRIPTION : Opcional: uma descrição do novo cronograma de escalabilidade.

Você pode criar programações que sejam executadas uma vez ou que sejam repetidas periodicamente.

Programação repetida

Este exemplo de chamada de API cria uma programação que se repete. Essa programação especifica que você deseja que um MIG zonal contenha pelo menos 10 instâncias de VM todas as segundas, terças, quartas, quintas e sextas-feiras, das 8h30 às 17h, Horário Universal Coordenado (UTC). Esta chamada de API também usa os campos minNumReplicas e maxNumReplicas para atualizar o número mínimo de instâncias para 0 e o número máximo de instâncias para 30 para todos os sinais de escalonamento automático do MIG selecionado. Esta chamada de API pressupõe que você tenha um projeto existente denominado example-project com um MIG zonal localizado em us-east1-b e tenha um autoescalador denominado example-autoscaler com uma política de escalonamento automático existente.

PATCH https://compute.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 para 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.

Agendamento único

Este exemplo de chamada de API cria uma programação que é executada uma vez. Essa programação especifica que você deseja que um MIG zonal contenha pelo menos 30 instâncias de VM durante todo o dia em 30 de janeiro de 2030 para o fuso horário America/New_York . Esta chamada de API pressupõe que você tenha um projeto existente denominado example-project com um MIG zonal localizado em us-east1-b e tenha um autoescalador denominado example-autoscaler com uma política de escalonamento automático existente.

PATCH https://compute.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 para 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ários horários

Este exemplo de chamada de API usa o método autoscalers.patch para duas programações, workday-capacity e january-30-2030-schedule , em uma única chamada. Esta chamada de API pressupõe que você tenha um projeto existente denominado example-project com um MIG zonal localizado em us-east1-b e tenha um autoescalador denominado example-autoscaler com uma política de escalonamento automático existente.

PATCH https://compute.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 para 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.

Após a criação de um agendamento, talvez seja necessário aguardar alguns minutos para ver suas informações de status .

Listando suas programações de escalonamento

Você pode visualizar uma lista das programações de um MIG. A lista mostra as configurações e informações de status de cada programação.

Console

  1. No console do Google Cloud, acesse a página Grupos de instâncias .

    Vá para grupos de instâncias

  2. Clique no nome de um MIG na lista.

  3. Clique em Editar .

  4. Você pode ver o número total de programações em Programações de escalonamento automático . Clique em Gerenciar programações para exibir a lista de suas programações de escalabilidade existentes.

Quando terminar, você pode fechar a lista clicando em Concluído .

gcloud

Para obter detalhes de um MIG, incluindo as configurações e os status de suas programações de escalonamento, use o comando gcloud compute instance-groups managed describe description .

gcloud compute instance-groups managed describe MIG_NAME \
    [--zone=ZONE | --region=REGION]

Substitua o seguinte:

  • MIG_NAME : o nome de um MIG com uma política de escalonamento automático existente.
  • ZONE ou REGION : Opcional: a zona ou região onde seu MIG está localizado.

Quaisquer programações de escalabilidade para seu 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'
...

DESCANSAR

Para obter detalhes de um escalonador automático, incluindo as configurações e os status de seus cronogramas de escalabilidade, use o método autoscalers.get para um MIG zonal ou o método regionAutoscalers.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 existente:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

Substitua o seguinte:

  • PROJECT : seu ID do projeto .
  • ZONE : a zona onde seu MIG está localizado.
  • AUTOSCALER_NAME : o nome de um escalonador automático existente. Geralmente é igual ao nome do MIG.

Quaisquer programações de escalabilidade para seu 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"
    },
    ...
  },
...
}

Editando uma programação de escalabilidade

Você pode editar uma programação de escalabilidade existente para alterar qualquer uma de suas configurações , exceto o nome da programação. Você também pode desativar ou reativar uma programação de escalabilidade .

Console

  1. No console do Google Cloud, acesse a página Grupos de instâncias .

    Vá para grupos de instâncias

  2. Clique no nome de um MIG na lista.

  3. Clique em Editar .

  4. Você pode ver o número total de programações em Programações de escalonamento automático . Clique em Gerenciar programações para exibir a lista de suas programações de escalabilidade existentes.

  5. Marque a caixa de seleção da programação de escalabilidade que você deseja editar.

  6. Na parte superior do painel Programações de escalabilidade , clique em Editar .

  7. No novo painel Editar agendamento de escalabilidade , modifique os campos que você deseja alterar. Para obter mais informações sobre cada campo, consulte Criando um planejamento de escalabilidade .

  8. Quando terminar, clique em Salvar .

Talvez seja necessário aguardar alguns minutos antes que as alterações entrem em vigor. Você pode monitorar o status de suas programações clicando em Atualizar na parte superior do painel Escalar programações .

Quando terminar, você pode fechar a lista clicando em Concluído .

gcloud

Para atualizar uma programação de escalabilidade existente, use o comando gcloud compute instance-groups managed update-autoscaling . Use o sinalizador --update-schedule para indicar o nome do agendamento a ser atualizado. Inclua os outros sinalizadores 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 o seguinte:

  • MIG_NAME : o nome de um MIG com uma programação de escalabilidade existente.
  • SCHEDULE_NAME : o nome da programação de escalonamento existente.
  • CRON_EXPRESSION : Opcional: o novo horário de início e recorrência deste agendamento formatado como uma expressão cron .
  • DURATION : Opcional: a nova duração , em segundos, que este agendamento está ativo.
  • 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 este planejamento fornece quando está ativo.
  • DESCRIPTION : Opcional: uma nova descrição do cronograma de escalabilidade.
  • ZONE ou REGION : Opcional: a zona ou região onde seu MIG está localizado.

DESCANSAR

Para atualizar os cronogramas de escalabilidade existentes para um MIG, use o método autoscalers.patch para um MIG zonal ou o método regionAutoscalers.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 existente:

PATCH https://compute.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 o seguinte:

  • PROJECT : seu ID do projeto .
  • ZONE : a zona onde seu MIG está localizado.
  • AUTOSCALER_NAME : o nome de um escalonador automático existente. Geralmente é igual ao nome do MIG.
  • SCHEDULE_NAME : o nome da programação de escalonamento existente.
  • MIN_REQ_REPLICAS : Opcional: o novo número mínimo de instâncias necessárias que este planejamento fornece quando está ativo.
  • CRON_EXPRESSION : Opcional: o novo horário de início e recorrência deste agendamento formatado 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: a nova duração , em segundos, que este agendamento está ativo.
  • DESCRIPTION : Opcional: uma nova descrição do cronograma de escalabilidade.

Desativar e reativar uma programação de escalabilidade

As programações de escalabilidade são habilitadas por padrão. Desative um agendamento se quiser impedir que um agendamento fique ativo, mas quiser salvar sua configuração. Reative uma programação desativada quando quiser usá-la novamente.

Se você não precisar armazenar o agendamento ou tiver atingido o limite de 128 agendamentos para este MIG, exclua o agendamento . Se você quiser desabilitar o escalonamento automático para um MIG, desative o escalonamento automático .

Console

  1. No console do Google Cloud, acesse a página Grupos de instâncias .

    Vá para grupos de instâncias

  2. Clique no nome de um MIG na lista.

  3. Clique em Editar .

  4. Você pode ver o número total de programações em Programações de escalonamento automático . Clique em Gerenciar programações para exibir a lista de suas programações de escalabilidade existentes.

  5. Marque as caixas de seleção das programações de escalabilidade que você deseja desativar ou ativar.

  6. Desabilite ou habilite os agendamentos selecionados.

    • Para desativar os agendamentos selecionados:
      1. Na parte superior do painel Programações de escalabilidade , clique em Disable .
      2. Na nova caixa de diálogo Desabilitar agendamentos , clique em Desabilitar .
    • Para ativar os agendamentos selecionados:
      1. Na parte superior do painel Programações de escalabilidade , clique em Enable .
      2. Na nova caixa de diálogo Habilitar agendamentos , clique em Habilitar .

Talvez seja necessário aguardar alguns minutos antes que as alterações entrem em vigor. Você pode monitorar o status de suas programações clicando em Atualizar na parte superior do painel Escalar programações .

Quando terminar, você pode fechar a lista clicando em Concluído .

gcloud

Para desativar ou reativar uma programação de escalonamento, use o comando gcloud compute instance-groups managed update-autoscaling .

Desativando uma programação de escalonamento

Para desabilitar uma programação de escalabilidade, use o sinalizador --disable-schedule .

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    --disable-schedule=SCHEDULE_NAME \
    [--zone=ZONE | --region=REGION]

Substitua o seguinte:

  • MIG_NAME : o nome de um MIG com uma programação de escalabilidade existente.
  • SCHEDULE_NAME : o nome da programação de escalabilidade que você deseja desativar.
  • ZONE ou REGION : Opcional: a zona ou região onde seu MIG está localizado.

Reativando uma programação de escalonamento

Para reativar uma programação de escalabilidade, use o sinalizador --enable-schedule .

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
    --enable-schedule=SCHEDULE_NAME \
    [--zone=ZONE | --region=REGION]

Substitua o seguinte:

  • MIG_NAME : o nome de um MIG com uma programação de escalabilidade existente.
  • SCHEDULE_NAME : o nome da programação de escalonamento que você deseja reativar.
  • ZONE ou REGION : Opcional: a zona ou região onde seu MIG está localizado.

DESCANSAR

Para desabilitar ou reativar programações de escalabilidade para um MIG, use o método autoscalers.patch para um MIG zonal ou o método regionAutoscalers.patch para um MIG regional.

Desativando programações de escalonamento

Para cada planejamento de escalabilidade que você deseja desabilitar, configure o campo disabled como true . Por exemplo, faça a seguinte chamada para desabilitar um agendamento para um MIG zonal que tenha uma política de escalonamento automático existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "disabled": true
      },
      ...
    }
  }
}

Substitua o seguinte:

  • PROJECT : seu ID do projeto .
  • ZONE : a zona onde seu MIG está localizado.
  • AUTOSCALER_NAME : o nome de um escalonador automático existente. Geralmente é igual ao nome do MIG.
  • SCHEDULE_NAME : o nome da programação de escalabilidade que você deseja desativar.

Reativando programações de escalonamento

Para cada planejamento de escalabilidade que você deseja reativar, defina o campo disabled como false . 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 existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": {
        "disabled": false
      },
      ...
    }
  }
}

Substitua o seguinte:

  • PROJECT : seu ID do projeto .
  • ZONE : a zona onde seu MIG está localizado.
  • AUTOSCALER_NAME : o nome de um escalonador automático existente. Geralmente é igual ao nome do MIG.
  • SCHEDULE_NAME : o nome da programação de escalonamento que você deseja reativar.

Excluindo uma programação de escalabilidade

Remova programações de escalonamento de um MIG excluindo-as. Exclua programações que não são mais necessárias, como programações com status OBSOLETE .

Uma política de escalonamento automático deve sempre ter pelo menos um sinal de escalonamento. Se não existir nenhum 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 quiser excluir todas as programações de escalabilidade, mas manter a política de escalabilidade automática, você deverá adicionar pelo menos um sinal de escalabilidade antes de excluir todas as programações.

Se quiser impedir que um agendamento fique ativo e salvá-lo para uso futuro, desative o agendamento . Se você quiser excluir a configuração de escalonamento automático de um MIG, exclua o autoscaler .

Console

  1. No console do Google Cloud, acesse a página Grupos de instâncias .

    Vá para grupos de instâncias

  2. Clique no nome de um MIG na lista.

  3. Clique em Editar .

  4. Você pode ver o número total de programações em Programações de escalonamento automático . Clique em Gerenciar programações para exibir a lista de suas programações de escalabilidade existentes.

  5. Marque as caixas de seleção das programações de escalabilidade que você deseja excluir.

  6. Na parte superior do painel Programações de escalabilidade , clique em Excluir .

  7. Na nova caixa de diálogo Excluir programações , clique em Excluir .

Talvez seja necessário aguardar alguns minutos antes que as alterações entrem em vigor. Você pode monitorar o status de suas programações clicando em Atualizar na parte superior do painel Escalar programações .

Quando terminar, você pode fechar a lista clicando em Concluído .

gcloud

Para excluir uma programação de escalabilidade, 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 o seguinte:

  • MIG_NAME : o nome de um MIG com uma programação de escalabilidade existente.
  • SCHEDULE_NAME : o nome da programação de escalabilidade que você deseja excluir.
  • ZONE ou REGION : Opcional: a zona ou região onde seu MIG está localizado.

DESCANSAR

Para excluir programações de escalabilidade para um MIG, use o método autoscalers.patch para um MIG zonal ou o método regionAutoscalers.patch para um MIG regional. Para cada agendamento de escalabilidade que você deseja excluir, defina a configuração do agendamento como null

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 existente:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME

{
  "autoscalingPolicy": {
    "scalingSchedules": {
      "SCHEDULE_NAME": null
      ...
    }
  }
}

Substitua o seguinte:

  • PROJECT : seu ID do projeto .
  • ZONE : a zona onde seu MIG está localizado.
  • AUTOSCALER_NAME : o nome de um escalonador automático existente. Geralmente é igual ao nome do MIG.
  • SCHEDULE_NAME : o nome da programação de escalabilidade que você deseja excluir.

Conceitos

Esta seção descreve conceitos relacionados à criação e uso de cronogramas de escalabilidade, incluindo configurações de cronograma e detalhes sobre como eles funcionam.

Dimensionando configurações de agendamento

Ao criar e modificar as programações de escalabilidade para um MIG, cada programação de escalabilidade contém as seguintes configurações:

  • Instâncias mínimas necessárias : o número de VMs necessárias no MIG quando esse agendamento de escalabilidade está ativo.

    Quando esse agendamento está ativo, 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 baseado em 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 fornecido, UTC será usado por padrão. Alguns fusos horários da IANA seguem o horário de verão. Para saber como o horário de verão afeta as programações de escala, consulte Horário de verão .

  • Duração : o tempo durante o qual você deseja que o agendamento de escalabilidade fique ativo.

    A programação de escalabilidade está ativa desde o horário de início durante a duração configurada. A duração mínima é de 5 minutos. Durante esse período, o escalonador automático dimensiona o MIG para ter pelo menos o número de VMs definido pelas instâncias necessárias do cronograma. Após a duração especificada, se a capacidade atual não for mais necessária, o escalonador automático começará a remover as instâncias de VM após um período de estabilização padrão de 10 minutos e seguindo quaisquer controles de redução vertical configurados.

    As programações de escala são bidirecionais. As VMs são removidas no horário de parada especificado e o tamanho do grupo é reduzido ao tamanho mínimo do grupo definido, a menos que você tenha especificado outros sinais de escalonamento automático.

Ao usar a Google Cloud CLI ou REST, você precisa 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, você pode 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:

  • Hora de início : a hora do dia em que você deseja que a programação de escalabilidade fique ativa.

    Na hora de início, o agendamento de escalabilidade começa a criar VMs sempre que o tamanho do MIG for menor que as instâncias necessárias do agendamento. Defina a hora de início para permitir tempo suficiente para que novas VMs sejam inicializadas. Por exemplo, se a sua carga de trabalho demorar 10 minutos desde a criação da VM para começar a ser veiculada, defina o horário de início como 10 minutos antes do horário em que você precisa que as VMs estejam prontas.

  • Recorrência : se e com que frequência o cronograma de escalonamento se repete, conforme definido pelas seguintes opções:

    • Uma vez : uma programação única que começa apenas na data selecionada.
    • Todos os dias : uma programação repetitiva que começa todos os dias.
    • Toda semana : uma programação repetida que começa toda semana nos dias selecionados da semana — por exemplo, de segunda a sexta.
    • Todo mês : uma programação repetida que começa todo mês nos dias selecionados do mês — por exemplo, no primeiro dia de cada mês. Os últimos dias do mês (dias 29 a 31) só entram em vigor durante os meses em que esses dias ocorrem.

Expressões Cron

A hora de início e a recorrência de um planejamento de escalabilidade podem ser configuradas usando uma expressão cron . Cron é um agendador de tarefas baseado em tempo originalmente usado em sistemas operacionais de computador do tipo Unix.

Sintaxe

Uma expressão cron é uma string composta por cinco ou seis campos separados por espaços em branco. A tabela a seguir define os campos de uma expressão cron e os valores possíveis 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)

onde 1 = Jan , 2 = Feb , ... 12 = Dec
0-6 (Dom-Sábado) ou 1-7 (Seg-Dom)

onde 0 = Sun , 1 = Mon , ... 6 = Sat , 7 = Sun
2000-2036

ou todos os anos ( * ) se não for fornecido

Além de usar esses valores, cada campo em uma expressão cron também pode usar caracteres especiais:

Caráter especial Significado Exemplo
* qualquer Se o campo do dia do mês, o campo do dia da semana e o campo do ano (se incluído) estiverem definidos como * , o agendamento será iniciado todos os dias.
- faixa Se o campo do dia da semana estiver definido como 1-5 ou Mon-Fri , a programação começará toda semana, de segunda a sexta-feira.
, lista Se o campo do mês estiver definido como 5,7,9 ou May,Jul,Sep , a programação começará todo mês de maio, julho e setembro.
/ etapa Se o campo mês estiver definido como */3 , o agendamento começará durante o primeiro mês e a cada 3 meses depois disso: janeiro, abril, julho e outubro.

Ao escrever uma expressão cron, considere o seguinte:

  • Espaço em branco é usado para separar os campos de uma expressão cron. Lembre-se de não adicionar espaços em branco extras em um campo que use caracteres especiais.
  • Quando você especifica um dia da semana e um dia do mês (quando nenhum dos campos está definido como * ), o planejamento usa a união desses valores, não a interseção. Por exemplo, a programação 0 8 1 * Mon começa às 8h de todas as segundas-feiras e no primeiro dia de cada mês. Esse horário não começa às 8h, apenas nas segundas-feiras, que também são o primeiro dia do mês.
  • Você pode usar zero ou mais caracteres especiais em cada campo de uma expressão cron. Por exemplo, se quiser que uma programação comece todos os meses, exceto maio, você pode definir o campo do mês como 1-4,6-12 (uma lista de dois intervalos sem espaços em branco).
  • Ao usar intervalos ( - ), você não pode usar 0-7 ou Sun-Sun para o campo do dia da semana. Para especificar todos os dias da semana, use * , 0-6 , 1-7 , Sun-Sat ou Mon-Sun .
  • Ao usar etapas ( / ), lembre-se de que as expressões cron não têm estado, portanto as etapas às vezes podem ser desiguais. Por exemplo, se quiser que um agendamento seja executado a cada 6 horas, você pode definir o campo horas como */6 , que se comporta da mesma forma que listar todos os múltiplos válidos de 6 ( 0,6,12,18 ). As etapas são iguais porque 24 horas são facilmente divididas em partes de 6 horas. No entanto, se você definir o campo horas como */7 , o agendamento nem sempre iniciará em intervalos de 7 horas. Em vez disso, */7 se comporta da mesma forma que listar todos os múltiplos válidos de 7 ( 0,7,14,21 ), o que significa que a programação pode começar durante as 12h, 7h, 14h e 21h.

Programações repetidas versus programações únicas

Dependendo de como você escreve sua expressão cron, sua programação pode ser executada uma vez ou repetida periodicamente. Para criar um planejamento que seja executado apenas uma vez, você deve especificar o campo ano. Por exemplo, a expressão cron 0 0 30 1 * 2030 configura um agendamento para iniciar apenas uma vez, à meia-noite de 30 de janeiro de 2030. Para criar um agendamento que se repete, use caracteres especiais para descrever quando esse agendamento deve ser repetido. Por exemplo, a expressão cron 30 8 * * Mon-Fri configura uma programação para iniciar às 8h30 todas as segundas, terças, quartas, quintas e sextas-feiras.

Agendar informações de status

Liste suas programações de escalabilidade para visualizar seu status. Uma programação de escalabilidade tem as seguintes informações de status:

  • Status ( state ): O status atual do cronograma de escalabilidade, representado por um dos seguintes estados:
    • Pronto ( READY ): Este agendamento está pronto, mas ainda não está ativo. O autoescalador está aguardando a próxima ocorrência deste agendamento.
    • Ativo ( ACTIVE ): Este agendamento está ativo no momento. O escalonador automático está tentando fornecer a este MIG pelo menos as instâncias necessárias especificadas por esta programação.
    • Obsoleto ( OBSOLETE ): Este agendamento expirou; ele não estará ativo novamente. O escalonador automático está ignorando esse agendamento porque não há ocorrências futuras.
    • Desativado ( DISABLED ): Este agendamento não pode estar ativo porque foi desativado manualmente. O escalonador automático está ignorando esse agendamento até ser reativado.
  • Última ocorrência ( lastStartTime ): o carimbo de data/hora da última vez que esse agendamento de escalabilidade ficou ativo. Esta é a data e hora reais da última ativação. Por exemplo, se você tiver uma programação de escalabilidade desabilitada com recorrência diária, horário de início às 10h e duração de 2 horas, e reativar a programação às 11h de hoje, o lastStartTime será 11h de hoje.
  • Próxima ocorrência ( nextStartTime ): O carimbo de data/hora da próxima vez que esse agendamento será definido para se tornar ativo.

Programações sobrepostas

Dependendo da hora de início, da recorrência, da duração e do fuso horário, duas ou mais programações de escalabilidade podem se sobrepor. Quando mais de um agendamento está ativo, o escalonador automático usa o maior número de instâncias de VM necessárias de todos os agendamentos de escalabilidade ativos. Isso ajuda a garantir que sempre haja capacidade suficiente para atender às necessidades de qualquer programação ativa. Por exemplo, se você tiver uma programação que se repete todos os dias, das 8h às 10h, exigindo pelo menos 10 VMs, mas também tiver uma programação única durante todo o dia que exige pelo menos 20 VMs, o escalonador automático dimensionará o MIG para pelo menos 20 VMs nesse dia. Isso é útil quando você tem requisitos de capacidade regulares e recorrentes, mas às vezes precisa de mais para lidar com eventos únicos. Esse comportamento permite agendar a capacidade sem se preocupar com a possibilidade de ela ser substituída por outras agendas com requisitos de VM menores.

Além disso, um escalonador automático sempre fornece o maior número de instâncias de VM exigidas por qualquer sinal de escalonamento automático ativo. Para obter mais informações, consulte Usando uma política de escalonamento automático com vários sinais .

Horário de verão

Os detalhes do horário de verão (DST) variam de acordo com o fuso horário da IANA baseado na localização da sua programação de escalonamento. Se o fuso horário da sua programação observar o horário de verão, o horário de início da programação será ajustado automaticamente para permanecer sincronizado com o horário do local selecionado. Por exemplo, se você criar uma programação de escalabilidade que comece todos os dias às 7h para o fuso horário America/New_York , essa programação começará sempre que forem 7h em Nova York, usando o horário de verão do leste ou o horário padrão do leste de acordo.

As programações de escalabilidade sempre são executadas durante toda a duração configurada, mas podem ter horários de início e término ligeiramente diferentes nos dias em que a observação do horário de verão muda. Isso acontece porque as opções de horário de verão têm períodos de transição – um período que é ignorado no primeiro dia do horário de verão e que ocorre duas vezes no último dia do horário de verão. Por exemplo, se o DST para o seu fuso horário começar às 2 da manhã e tiver uma transição de 1 hora, o relógio mudar de 1:59:59 às 3 da manhã, então o prazo de 2h às 2:59:59 é ignorado. Se o DST para esse fuso horário terminar às 2 da manhã, o relógio mudar de 2:59:59 às 2 da manhã, então o período das 2 da manhã às 2:59:59 é repetido. As declarações a seguir assumem que o fuso horário da sua programação usa uma transição DST de 1 hora.

No primeiro dia de DST (quando uma hora é ignorada), os horários de escala têm as seguintes alterações:

  • Os horários que estão ativos durante a hora ignorada ainda são executados por toda a duração, mas para compensar a hora pulada, esses horários terminam 1 hora depois do horário de término em dias sem transições de DST. Normalmente, o horário final de um cronograma é a soma do horário de início e duração do cronograma. Mas se o DST pular 1 hora enquanto um cronograma estiver ativo e a duração e o horário de início permanecerem constantes, o horário final para esse cronograma é de 1 hora a mais que a soma do horário de início e duração do cronograma.
  • Os horários configurados para começar durante a hora ignorada também começam 1 hora depois do horário de início em dias sem transições de DST.

No último dia de DST (quando uma hora é repetida), os horários de escala têm as seguintes alterações:

  • Os horários que estão ativos durante a hora de repetição ainda são executados por toda a duração, mas para compensar a hora repetida, esses horários terminam 1 hora antes do horário de término em dias sem transições de DST. Normalmente, o horário final de um cronograma é a soma do horário de início e duração do cronograma. Mas se o DST se repetir 1 hora enquanto um cronograma estiver ativo e a duração e o horário de início permanecerão constantes, o horário final para esse cronograma é 1 hora a menos que a soma do horário de início e duração do cronograma.
  • Os horários configurados para começar durante o período de transição começam no tempo configurado, mas não reiniciam durante a segunda ocorrência repetida do horário de início.

A maioria dos fusos horários que observam o DST usa um período de transição de 1 hora. Mas, se o fuso horário da sua programação usar um período de transição diferente-como a Australia/Lord_Howe Horial Fuso, que usa transições de 30 minutos-você pode esperar o mesmo comportamento. Basta substituir 1 hora pelo tempo de transição do DST relevante.

O que vem a seguir