Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Customize kube-scheduler parameters

Última atualização: Sep 17, 2026

Personalize comportamentos do kube-scheduler, como binpack, agendamento com base em carga e preempção, para controlar o posicionamento de pods no cluster.

Pré-requisitos

Crie um cluster ACK Pro, cluster ACK Edge Pro, cluster ACK Lingjun ou cluster ACK Serverless Pro com Kubernetes 1.20 ou posterior. Para atualizar a versão do Kubernetes, atualize o cluster manualmente.

Limitações

Versões do kube-scheduler compatíveis com parâmetros personalizados em clusters ACK Pro e clusters ACK Edge Pro, por versão do Kubernetes:

Nota

Clusters ACK Serverless Pro e ACK Lingjun com o kube-scheduler instalado também aceitam parâmetros personalizados.

Versão do Kubernetes

Versão do kube-scheduler

≥ 1,28

Todas as versões

1,26

≥ v1.26.3-aliyun-6.8.7.5a563072

1.24

≥ 1.24.6-ack-3.1

1.22

≥ 1.22.15-ack-2.0

1.20

≥ v1.20.11-9.0-bcaa6001-aliyun

Procedimento

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

  2. Na página Clusters, localize o cluster desejado e clique no nome dele. No painel de navegação à esquerda, clique em Add-ons.

  3. Na aba Core Components, localize Kube Scheduler e clique em Configuration. Configure os parâmetros na caixa de diálogo Kube Scheduler Parameters.

    Os parâmetros disponíveis variam conforme a versão do kube-scheduler. Para recursos específicos de cada versão, consulte Container Service for Kubernetes:kube-scheduler.

    Parâmetro

    Descrição

    Tipo

    Valor válido

    Valor padrão

    Enable Virtual Node-based Pod Scheduling

    Define se os pods devem ser agendados em nós virtuais com base na afinidade de nó e nas restrições de distribuição de pods.

    bool

    • true

    • false

    true

    podMaxBackoffSeconds

    Intervalo máximo de backoff (em segundos) entre tentativas de agendamento para um pod com falha. O intervalo entre duas tentativas deve exceder este valor.

    int

    [1,100000]

    10

    Preferably Use Bin Packing During Pod Scheduling

    Indica se o algoritmo binpack deve ser ativado.

    Para exemplos de configuração, consulte Parâmetros personalizados de binpack.

    bool

    • false

    • true

    false

    binpackPluginWeight

    Peso da pontuação do nó pelo plug-in binpack. Requer a opção Preferably Use Bin Packing During Pod Scheduling.

    int

    [1,100000]

    100

    binpackResourceWeight

    Peso de cada recurso no cálculo da pontuação do nó pelo plug-in binpack. Exige que Preferably Use Bin Packing During Pod Scheduling esteja habilitado.

    • resourceName: string

    • resourceWeight: int

    • resourceName: apenas letras, dígitos, pontos (.), barras (/) e hifens (-).

    • resourceWeight: inteiro de 1 a 10000.

    • cpu:1

    • memory:1

    scorePluginWeights

    Peso de cada plug-in de pontuação no cálculo da nota do nó.

    Nota

    O peso do plug-in NodeResourceFit entra em conflito com o peso do plug-in binpack. Caso selecione Preferably Use Bin Packing During Pod Scheduling (Pods Are Evenly Distributed among Nodes When Unselected), não defina um peso para NodeResourceFit neste parâmetro.

    • plugin: string

    • weight: int

    • Somente plug-ins listados no menu suspenso plugin estão disponíveis.

    • weight: inteiro de 1 a 10000.

    • plugin: NodeAffinity

    • weight: 100

    percentageOfNodesToScore

    Percentual de nós adequados para o agendamento de pods.

    Valor padrão: 0. Quando definido como 0, entre 5% e 50% dos nós são pontuados conforme o tamanho do cluster.

    int

    [0,100]

    0

    Node scoring for GPU sharing

    Ao usar agendamento com GPU compartilhada (requer o pacote de IA), direciona pods acelerados por GPU para GPUs com maiores solicitações de memória e computação.

    bool

    • false

    • true

    true

    Load-aware scoring during pod scheduling (loadAwareResourceWeight)

    Habilita o agendamento com base na carga real dos nós. Requer o componente ack-koordinator.

    bool

    • false

    • true

    false

    loadAwareThreshold

    Defina o limiar para filtragem de nós.

    O valor é composto pelos campos resourceName e resourceWeight.

    • resourceName: Os valores válidos são cpu e memory.

    • threshold: Valores válidos variam de 0 a 100.

    Por padrão, esse campo fica vazio, desativando a filtragem de nós.

    • resourceName: cpu

    • threshold: 80

    loadAwareResourceWeight

    Especifique o peso do recurso usado no cálculo da pontuação do nó para ordenação. Disponível após selecionar Specifies whether to enable load-aware node scoring during pod scheduling.

    Composto pelos campos resourceName e resourceWeight.

    • resourceName: O esquema do parâmetro resourceName é validado. Apenas cpu ou memory são aceitos.

    • resourceWeight: Inteiros de 1 a 100.

    cpu=1

    memory=1

    loadAwareAggregatedUsageAggregationType

    Tipo de agregação de dados para as estatísticas. Opções válidas:

    • avg: calcula a média.

    • p50: considera 50% das estatísticas.

    • p90, p95 e p99: consideram, respectivamente, 90%, 95% e 99% das estatísticas.

    enum

    • avg

    • p50

    • p90

    • p95

    • p99

    avg

    preemptionAlgorithm

    O ACK Scheduler decide se deve remover pods de menor prioridade via simulação de recursos, priorizando a inicialização rápida de cargas de alta prioridade. Estratégias suportadas:

    • Default: preempção padrão da comunidade Kubernetes

    • ElasticQuota: preempção baseada em ElasticQuotaTree

    • Auto: política adaptativa conforme as especificações do cluster

    • None: desativa a preempção

    Consulte Enable preemption.

    enum

    • Default

    • ElasticQuota

    • Auto

    • None

    Auto

    enableReservation

    Ativa a reserva de recursos.

    boolean

    • true

    • false

    false

    featureGates

    Feature gates habilitados pelo scheduler. Para suporte por versão, veja a documentação do kube-scheduler.

    string

    N/A

    O ACK utiliza os mesmos feature gates do Kubernetes open source.

O exemplo a seguir ilustra uma configuração típica de binpack.

Parâmetros personalizados de binpack

Binpack versus algoritmo spread

Dimensão

binpack

spread

Política de agendamento

  • Direciona pods para nós com alta utilização de recursos.

  • Coloca múltiplos pods no mesmo nó.

  • Aloca pods em nós com menor utilização de recursos.

  • Distribui pods entre diferentes nós.

Característica

Minimiza a fragmentação de recursos nos nós.

  • Política padrão de agendamento do Kubernetes.

  • Espalha pods uniformemente pelos nós do cluster.

  • Pode causar fragmentação de recursos nos nós.

Cenários

Ideal para aumentar a utilização de recursos dos nós.

Recomendado para cargas de trabalho de alta disponibilidade.

Configurar parâmetros personalizados de binpack

Selecione Preferably Use Bin Packing During Pod Scheduling e defina o peso do plug-in binpack. Um peso maior eleva a probabilidade de colocar pods no mesmo nó. Especifique os nomes dos recursos e seus respectivos pesos para o cálculo da pontuação do nó; quanto maior o peso, maior a influência desse recurso no agendamento.

Na aba Core Components da página Add-ons, localize Kube Scheduler e clique em Configuration para ajustar os parâmetros de binpack.

Parâmetro

Descrição

Preferably Use Bin Packing During Pod Scheduling

Habilita o algoritmo binpack.

binpackPluginWeight

Peso da pontuação do nó atribuído pelo plug-in binpack. Na maioria dos casos, mantenha o valor padrão. Se o agendamento não ocorrer como esperado, aumente o peso (por exemplo, 200). Consulte peso do binpack.

Nomes e pesos dos recursos para o cálculo da pontuação binpack do nó.

Veja Enabling bin packing using MostAllocated strategy.

  • Os campos name e weight em scoringStrategy:resources definem o peso de cada recurso na pontuação do nó.

  • Esses mesmos campos correspondem a resourceName e resourceWeight no console do ACK.

Caso ative Preferably Use Bin Packing During Pod Scheduling sem definir resourceName e resourceWeight, o sistema aplica automaticamente as configurações padrão de CPU e memória mostradas abaixo para calcular a pontuação do nó. Os valores padrão são resourceName cpu com resourceWeight 1 e resourceName memory com resourceWeight 1.

cpu

Referências

Para agendar pods com base no uso real de recursos em vez dos valores solicitados, ative o agendamento com base em carga.