Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Use CronHPA for scheduled pod scaling

Última atualização: Oct 12, 2026

Se o uso de recursos da sua aplicação segue um padrão recorrente e previsível, utilize o CronHPA (Cron Horizontal Pod Autoscaler) para dimensionar pods conforme um cronograma. O CronHPA é ideal para cenários com picos de tráfego previsíveis ou para execução de tarefas agendadas.

Antes de começar

O Container Service for Kubernetes (ACK) oferece múltiplas soluções para dimensionamento de carga de trabalho (na camada de agendamento) e dimensionamento de nós (na camada de recursos). Antes de iniciar, leia auto scaling para compreender os casos de uso e as limitações de cada solução.

Modelo e parâmetros do CronHPA

O CronHPA é implementado pelo kubernetes-cronhpa-controller, um controlador de dimensionamento automático de pods baseado em tempo. Ele utiliza uma sintaxe semelhante ao cron para configurar políticas de dimensionamento agendado, permitindo ajustar dinamicamente os recursos para cargas de trabalho com flutuações periódicas de tráfego. É possível aplicar o CronHPA a qualquer objeto do Kubernetes que suporte o sub-recurso scale, como Deployments e StatefulSets.

Visualize o YAML de exemplo e as descrições dos parâmetros

cronhorizontalpodautoscaler.autoscaling.alibabacloud.com/cronhpa-sample created

A tabela a seguir descreve os parâmetros em uma configuração do CronHPA.

Parâmetro

Descrição

scaleTargetRef

Especifica o objeto alvo para dimensionamento. O CronHPA pode dimensionar qualquer recurso do Kubernetes que suporte o sub-recurso scale.

excludeDates

Um array de datas. A tarefa é ignorada nas datas especificadas em excludeDates. A unidade mínima é dia.

" " representa "<Segundos> <Minutos> <Horas> <Dia do mês> <Mês> <Dia da semana>".

Para não executar uma tarefa em 15 de novembro, especifique excludeDates conforme o exemplo a seguir.

excludeDates:
      - "* * * 15 11 *"

jobs

Uma lista de jobs do CronHPA que podem ser definidos em uma única especificação. Cada job pode ser configurado com os seguintes campos:

  • name: O nome do job do CronHPA.

  • schedule: Uma expressão cron que define quando o job é executado. Baseada na biblioteca go-cron, a sintaxe é semelhante ao crontab padrão, mas suporta expressões mais flexíveis. Ao criar um job, siga rigorosamente o formato descrito abaixo.

    O formato de uma expressão cron é o seguinte:

    Field name   | Mandatory? | Allowed values  | Allowed special characters
          ----------   | ---------- | --------------  | --------------------------
          Seconds      | Yes        | 0-59            | * / , -
          Minutes      | Yes        | 0-59            | * / , -
          Hours        | Yes        | 0-23            | * / , -
          Day of month | Yes        | 1-31            | * / , - ?
          Month        | Yes        | 1-12 or JAN-DEC | * / , -
          Day of week  | Yes        | 0-6 or SUN-SAT  | * / , - ?
  • targetSize: A contagem alvo de réplicas para a carga de trabalho quando o job é executado.

  • runOnce: Se este parâmetro for definido como true, a tarefa será executada apenas uma vez e depois encerrada.

Etapa 1: Instale o add-on do CronHPA

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Components and Add-ons .

  3. Clique na aba Application Management, localize ack-kubernetes-cronhpa-controller e siga as instruções na tela para instalar o add-on.

Etapa 2: Crie um job do CronHPA

Antes de criar um job do CronHPA, certifique-se de que o add-on do CronHPA esteja em execução no seu cluster e que a aplicação alvo possua apenas um objeto HPA. O exemplo a seguir mostra como criar um job do CronHPA para uma aplicação stateless. O procedimento é semelhante para outros tipos de cargas de trabalho.

Ao criar uma aplicação

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Workloads > Deployments.

  3. Na página Deployments, clique em Create from Image.

  4. Na página Create, configure as informações básicas, o container, o service e as configurações de dimensionamento agendado para criar um Deployment compatível com CronHPA.

    Para instruções detalhadas e descrições de parâmetros, consulte Create a stateless workload (Deployment). Os principais parâmetros estão descritos abaixo.

    • Basic Information: Configure o nome da aplicação e a contagem de réplicas.

    • Container: Configure a imagem e especifique os recursos necessários de CPU e memória para o container.

    • Advanced:

      • Na seção Scaling, marque a caixa de seleção Enable para CronHPA. Caso o add-on não esteja instalado, siga as instruções para instalá-lo. Em seguida, configure as condições e parâmetros de dimensionamento agendado.

        • Scheduled Task Name: O nome do job do CronHPA.

        • Desired Number of Replicas: O número alvo de réplicas para a aplicação no horário agendado.

        • Scaling Schedule: O cronograma para o job de dimensionamento. Para mais informações, consulte Kubernetes CronHPA Controller.

Para aplicações existentes

Pela página Workloads

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Workloads > Deployments.

  3. Clique no nome da carga de trabalho alvo e, em seguida, clique na aba Pod Scaling. Na seção CronHPA, clique em Create e configure o job do CronHPA.

    Parâmetro

    Descrição

    Job Name

    O nome do job do CronHPA.

    Desired Number of Replicas

    A contagem de réplicas para a qual a aplicação será dimensionada no horário agendado.

    Scaling Schedule

    O cronograma para o job de dimensionamento. Para obter mais informações sobre como definir um cronograma para um job do CronHPA, consulte AliyunContainerService/kubernetes-cronhpa-controller.

Página Workload Scaling

Nota

Esta página está disponível apenas para usuários incluídos na lista de permissões. Para solicitar acesso, envie um ticket.

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Workload Scaling.

  3. No canto superior direito da página, clique em Create Auto Scaling.

  4. Clique na aba HPA and CronHPA, selecione a opção Select Workload e marque a caixa de seleção CronHPA na seção Configure Auto Scaling Policy.

    É possível adicionar múltiplos jobs do CronHPA. Configure a política do CronHPA conforme solicitado e clique em OK.

    • CronHPA Task Name: Um nome personalizado para o objeto CronHPA.

    • Job Name: Um nome personalizado para o job do CronHPA.

    • Desired Number of Replicas: A contagem alvo de réplicas para a aplicação no horário agendado.

    • Scaling Schedule: O cronograma para o job de dimensionamento. Para mais informações, consulte Kubernetes CronHPA Controller.

Usando kubectl

  1. Crie um arquivo chamado cronhpa.yaml e copie o seguinte conteúdo para ele.

    cronhorizontalpodautoscaler.autoscaling.alibabacloud.com/cronhpa-sample created
  2. Execute o comando a seguir para criar um job do CronHPA para uma carga de trabalho existente:

    cronhorizontalpodautoscaler.autoscaling.alibabacloud.com/cronhpa-sample created

    Saída esperada:

    cronhorizontalpodautoscaler.autoscaling.alibabacloud.com/cronhpa-sample created

Operações relacionadas

Gerencie jobs do CronHPA

Após criar um job do CronHPA, você pode visualizar seu status na lista do CronHPA. Para adicionar um novo job ou modificar um existente, utilize um dos métodos a seguir:

  • Pela página Workload Scaling

    1. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Workload Scaling.

    2. Clique na aba CronHPA. Na coluna Actions do job CronHPA alvo, clique em Edit.

  • Pela página Workloads (usando um Deployment como exemplo)

    1. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Workloads > Deployments.

    2. Na página Deployments, clique em Details para o Deployment alvo na coluna Actions e, em seguida, clique na aba Pod Scaling. Na coluna Actions da seção CronHPA, clique em Add or Modify Job.

Use o CronHPA com HPA

Para mais informações, consulte Make CronHPA compatible with HPA.