Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Visão geral do agendamento

Última atualização: Jun 27, 2026

O ACK estende o agendamento do Kubernetes com políticas para jobs, topologia, QoS e desescalonamento.

Antes de começar

  • Selecione uma política de agendamento com base na sua função e no cenário de negócios:

    • Engenheiros de O&M focam no custo do cluster e na maximização da utilização de recursos, garantindo alta disponibilidade, equilibrando a carga dos nós e evitando pontos únicos de falha (SPOFs).

    • Desenvolvedores de aplicações precisam de implantação e gerenciamento simplificados, além de recursos adequados, como CPU, GPU e memória, para garantir o desempenho das aplicações.

  • Para usar as políticas de agendamento do ACK de forma eficaz, familiarize-se com o Kubernetes Scheduler, Rótulos de nó, Evicção por pressão no nó e Restrições de distribuição de topologia de Pod.

    O agendador do ACK utiliza a mesma política padrão do agendador Kubernetes open source, composta pelos plug-ins de Filtro e Pontuação.

Políticas de agendamento nativas do Kubernetes

As políticas de agendamento nativas do Kubernetes dividem-se em duas categorias: agendamento de nós e agendamento entre pods.

  • Políticas de agendamento de nós: agendam pods em nós que correspondem a características específicas e condições de recursos.

  • Políticas de agendamento entre pods: controlam a distribuição de pods para otimizar a implantação e garantir a alta disponibilidade da aplicação.

Política

Descrição

Cenário

nodeSelector

Rotule nós com pares chave-valor e use nodeSelector para agendar pods nos nós correspondentes.

Por exemplo, agendar pods em nós específicos ou agendar pods em um pool de nós específico.

Método básico de seleção de nós incompatível com recursos de agendamento mais complexos, como regras flexíveis.

nodeAffinity

Mais flexível e granular que o nodeSelector. Inclui, por exemplo, a regra rígida requiredDuringSchedulingIgnoredDuringExecution e a regra flexível preferredDuringSchedulingIgnoredDuringExecution.

Agenda pods em nós com características específicas, como regiões, tipos de dispositivo e hardware. Regras de anti-afinidade distribuem os pods entre vários nós.

Taints e tolerations

Um taint consiste em uma chave, valor e efeito (efeitos comuns: NoSchedule, PreferNoSchedule, NoExecute). Apenas pods com uma toleration correspondente são agendados em nós com taints.

  • Reserva recursos dedicados em nós para aplicações específicas, como nós acelerados por GPU para cargas de trabalho de IA ou ML.

  • Adicione taints ou rótulos a pools de nós para agendar pods de aplicações em pools específicos. Consulte Criar e gerenciar pools de nós e Modifique um pool de nós.
  • Evita pods com base em taints e tolerations. Por exemplo, adicione um taint a um nó não íntegro e defina o efeito como NoExecute.

Afinidade e anti-afinidade entre pods

Os rótulos dos pods determinam o agendamento pod-nó. Compatível com a regra de afinidade requiredDuringSchedulingIgnoredDuringExecution e a regra de anti-afinidade preferredDuringSchedulingIgnoredDuringExecution.

  • Coloca pods colaborativos no mesmo nó ou em nós vizinhos para reduzir a latência de rede.

  • Distribui pods de aplicações críticas entre diferentes nós ou domínios de falha.

Políticas de agendamento do ACK

O ACK estende o agendamento do Kubernetes para atender a requisitos como scale-out ordenado com scale-in reverso e agendamento ciente de carga baseado no uso real de recursos do nó.

Configure agendamento de recursos baseado em prioridade

  • Função indicada: Engenheiros de O&M de cluster.

  • Descrição: Em clusters com tipos de instância mistos, como instâncias ECS e instâncias de contêiner elásticas, e métodos de faturamento variados, como assinatura, pagamento conforme o uso e instâncias preemptíveis, configure o agendamento de recursos baseado em prioridade. Isso define a ordem de seleção de nós para o agendamento de pods e inverte essa ordem durante o scale-in.

Política

Descrição

Cenário

Referência

Agendamento de recursos personalizado baseado em prioridade

Especifique um valor personalizado de ResourcePolicy durante lançamentos ou dimensionamento para definir a ordem de seleção de recursos dos nós. Por exemplo, prefira instâncias ECS por assinatura, depois instâncias ECS pagas conforme o uso e, por fim, instâncias de contêiner elásticas.

O scale-in reverte essa ordem: primeiro instâncias de contêiner elásticas, depois instâncias ECS pagas conforme o uso e, finalmente, instâncias ECS por assinatura.

  • Defina nós preferenciais ou a serem evitados para equilibrar o uso de recursos do cluster.

  • Pods de aplicações de alto desempenho são agendados prioritariamente em nós de alto desempenho.

  • Pods não críticos para desempenho são agendados preferencialmente em instâncias preemptíveis ou nós com recursos ociosos, reduzindo custos.

Agendamento de prioridade personalizada para recursos elásticos

Agendamento de jobs

  • Função indicada: Engenheiros de O&M de cluster.

  • Descrição: O agendador padrão não é adequado para jobs em lote. O ACK oferece suporte a gang scheduling e capacity scheduling para jobs em lote.

Política

Descrição

Cenário

Referência

Gang Scheduling

Todos os pods relacionados são agendados juntos ou nenhum deles é agendado, impedindo que processos anormais bloqueiem o grupo.

  • Jobs em lote: Um job contém múltiplas tarefas interdependentes que devem ser processadas simultaneamente.

  • Computação distribuída: Jobs de treinamento de machine learning ou outras aplicações distribuídas que precisam ser executadas ao mesmo tempo.

  • Computação de alto desempenho: Um job pode exigir todos os recursos disponíveis simultaneamente antes da execução.

Usar Gang scheduling

Capacity Scheduling

Reserva recursos para namespaces ou grupos de usuários específicos e melhora a utilização por meio do compartilhamento de recursos quando os recursos do cluster estão limitados.

Em clusters multilocatários, ciclos de vida de recursos e padrões de uso variados levam à baixa utilização. O compartilhamento e a recuperação de recursos melhoram a utilização geral.

Trabalhar com capacity scheduling

Agendamento ciente de topologia

  • Função indicada: Engenheiros de O&M de cluster.

  • Descrição: Cargas de trabalho de machine learning e big data exigem comunicação intensa entre pods, mas o agendador padrão distribui os pods uniformemente pelo cluster, aumentando o tempo de conclusão dos jobs. Os mecanismos nativos de afinidade não conseguem tentar novamente em múltiplos domínios de topologia.

Descrição

Cenário

Referência

O agendador usa rótulos de gang scheduling para garantir que todas as solicitações de recursos dos pods sejam atendidas simultaneamente. O agendamento ciente de topologia itera pelos domínios de topologia para encontrar um que atenda a todos os requisitos dos pods.

Associe pools de nós a conjuntos de implantação para agendar pods em instâncias ECS no mesmo conjunto de implantação de baixa latência, melhorando o desempenho do job.

Em jobs de machine learning ou big data, os pods precisam de comunicação frequente. O agendador itera pelos domínios de topologia para encontrar um que satisfaça todos os requisitos dos pods, reduzindo o tempo de conclusão do job.

Agendamento ciente de carga

  • Função indicada: Engenheiros de O&M de cluster e desenvolvedores de aplicações.

  • Descrição: O agendador nativo atribui pods com base na alocação de recursos, não no uso real. Como as cargas dos nós mudam dinamicamente com o tráfego e as cargas de trabalho, o agendador nativo não consegue detectar as cargas de recursos em tempo real.

Descrição

Cenário

Referência

O agendador do ACK monitora o histórico de carga dos nós e estima o uso de recursos de novos pods para agendá-los em nós com menor carga, prevenindo falhas causadas por nós sobrecarregados.

Aplicações sensíveis a carga, latência de acesso ou QoS de recursos.

Usar agendamento ciente de carga

Usar desescalonamento de hotspots ciente de carga para evitar desequilíbrio na carga dos nós.

Agendamento ciente de QoS

  • Função indicada: Engenheiros de O&M de cluster e desenvolvedores de aplicações.

  • Descrição: As classes de QoS do Kubernetes (Guaranteed, Burstable, BestEffort) determinam a prioridade de evicção de pods quando os recursos do nó são insuficientes. O ACK adiciona agendamento ciente de SLO para melhorar o desempenho de aplicações sensíveis à latência, garantindo simultaneamente o acesso a recursos para jobs de menor prioridade.

Política

Descrição

Cenário

Referência

CPU Burst

O SO pode limitar o uso de CPU do contêiner dentro de um ciclo (throttling de CPU). O CPU Burst permite que contêineres ociosos acumulem fatias de tempo de CPU e ultrapassem temporariamente o limite de CPU durante picos de demanda, melhorando o desempenho e reduzindo a latência.

  • Contêineres que consomem muita CPU durante a inicialização e carregamento, mas requerem uso regular de CPU posteriormente.

  • Aplicações com picos repentinos de CPU, como e-commerce, jogos e outros serviços web, que precisam responder rapidamente a surtos de tráfego.

Ative a política de otimização de desempenho CPU Burst

Agendamento de CPU ciente de topologia

Fixa pods sensíveis a CPU em núcleos específicos para evitar degradação de desempenho causada por troca frequente de contexto e acesso à memória cross-NUMA.

  • Aplicações não adaptadas a ambientes cloud-native — por exemplo, contagens de threads baseadas em núcleos físicos em vez de especificações do contêiner, causando degradação de desempenho.

  • Aplicações em instâncias Bare Metal ECS multicore com CPUs Intel ou AMD que sofrem degradação de desempenho devido ao acesso à memória cross-NUMA.

  • Aplicações altamente sensíveis à troca de contexto de CPU que não toleram flutuações de desempenho.

Ative agendamento ciente de topologia de CPU

Agendamento de GPU ciente de topologia

Quando múltiplos pods intensivos em GPU são executados simultaneamente, eles podem competir por recursos de GPU e alternar entre GPUs ou nós NUMA, degradando o desempenho. O agendamento de GPU ciente de topologia atribui cargas de trabalho a GPUs específicas, reduzindo o acesso à memória cross-NUMA e melhorando o desempenho.

  • Computação distribuída em larga escala que requer transferência eficiente de dados, como computação de alto desempenho.

  • Cargas de trabalho de machine learning e deep learning que exigem recursos extensivos de GPU e alocação adequada de jobs de treinamento entre GPUs.

  • Renderização gráfica e desenvolvimento de jogos que requerem alocação eficiente de jobs de renderização entre GPUs.

Sobrecarga dinâmica de recursos

Recupera recursos alocados, mas não utilizados pelos pods, e agenda-os para jobs de baixa prioridade para permitir sobrecarga. Use as seguintes políticas de QoS de nó único em conjunto para evitar que as aplicações afetem umas às outras:

  • CPU Suppress: Limita os recursos de CPU disponíveis para pods de baixa prioridade quando o uso geral do nó está abaixo do limiar, garantindo a estabilidade do contêiner.

  • CPU QoS: Garante alocação suficiente de CPU para aplicações de alta prioridade.

  • Memory QoS: Garante alocação suficiente de memória para aplicações de alta prioridade e atrasa a recuperação de memória.

  • Isolamento de recursos baseado em cache L3 e Memory Bandwidth Allocation (MBA): Prioriza o cache L3 e MBA para aplicações de alta prioridade.

Melhora a utilização de recursos do cluster por meio de colocalização. Cenários típicos incluem treinamento e inferência de modelos de ML, processamento e análise de big data em lote, serviços online e backup offline.

Modifique dinamicamente os parâmetros de recursos de um pod

No Kubernetes 1.27 ou anterior, modificar parâmetros do contêiner exige excluir e recriar o pod. O ACK permite modificar limites de CPU, memória e IOPS de disco sem reiniciar o pod.

Ajustes temporários de recursos de CPU ou memória.

Modifique dinamicamente parâmetros de recursos do pod

Desescalonamento

  • Função indicada: Engenheiros de O&M de cluster e desenvolvedores de aplicações.

  • Descrição: À medida que as condições do cluster mudam, os pods em execução podem precisar migrar para nós mais adequados.

Política

Descrição

Cenário

Referência

Desescalonamento

Reagenda pods mal posicionados para nós ideais quando hotspots se formam devido ao uso desigual de recursos ou mudanças nos atributos dos nós, garantindo alta disponibilidade e eficiência da carga de trabalho.

  • Distribuição desigual de carga de trabalho com nós sobrecarregados, por exemplo, em cenários de colocalização.

  • Baixa utilização de recursos do cluster exigindo remoção de nós para reduzir custos.

  • Fragmentação de recursos impede que nós individuais tenham recursos suficientes, apesar da capacidade adequada em todo o cluster.

  • Taints ou rótulos são adicionados ou removidos de um nó.

Trabalhar com desescalonamento de hotspots ciente de carga

Combina agendamento ciente de carga e desescalonamento de hotspots para monitorar as cargas dos nós e reequilibrar automaticamente os nós que excedem o limiar de carga.

Desescalonamento de hotspots ciente de carga

Faturamento

O agendamento do ACK gera cobranças pelo gerenciamento do cluster e recursos de nuvem com base nas regras de faturamento. Taxas adicionais de componentes de agendamento:

  • O agendador padrão do ACK (kube-scheduler) é gratuito para instalação e uso.

  • O agendamento e desescalonamento de recursos do ACK baseiam-se no ack-koordinator. O ack-koordinator é gratuito para instalação e uso, mas pode gerar taxas adicionais em cenários específicos. Consulte ack-koordinator (FKA ack-slo-manager).

FAQ

Para problemas de agendamento, consulte o FAQ de Agendamento.

Referências