O dimensionamento de carga de trabalho e o dimensionamento de recursos de computação ajustam dinamicamente as réplicas de pods e a capacidade do cluster para lidar com picos de tráfego e reduzir custos.
Observações de uso
Antes de configurar o dimensionamento de carga de trabalho e o dimensionamento de nós, familiarize-se com as soluções da comunidade, como Horizontal Pod Autoscaler (HPA), Vertical Pod Autoscaler (VPA) e Cluster Autoscaling.
Se o seu cluster tiver mais de 500 nós ou 10.000 pods, consulte Planejar taxas de dimensionamento para garantir a estabilidade do cluster e do plano de controle.
Dimensionamento de carga de trabalho e dimensionamento de recursos de computação
O Auto Scaling do ACK opera em duas camadas:
Dimensionamento de carga de trabalho: ajusta a quantidade de pods ou a alocação de recursos por pod na camada de agendamento. Por exemplo, o HPA dimensiona os pods da aplicação conforme as alterações de tráfego.
Dimensionamento de recursos de computação: ajusta os recursos do cluster por meio do dimensionamento de nós e do dimensionamento de nós virtuais, com base no agendamento de pods e no uso de recursos.
Combine ambas as camadas para melhorar a utilização de recursos e atender às demandas de agendamento de pods.
Soluções de **dimensionamento de carga de trabalho**
Para dimensionamento temporário, execute kubectl scale e ajuste manualmente a quantidade de pods. Para dimensionamento automatizado, escolha uma das seguintes soluções de dimensionamento de carga de trabalho.
|
Solução |
Descrição |
Métrica de dimensionamento |
Cenário |
Referências |
|
HPA |
O HPA aumenta os pods durante picos e reduz nos períodos de baixa demanda para otimizar custos. Adequado para a maioria dos cenários. |
|
Ideal para serviços online com flutuações frequentes de tráfego, como e-commerce, educação online e serviços financeiros. |
|
|
CronHPA |
O CronHPA dimensiona pods conforme um cronograma predefinido semelhante ao Crontab, com suporte a fuso horário e data. É possível excluir datas específicas, como feriados. Compatível com o HPA. |
Dimensionamento agendado |
Recomendado para aplicações com padrões de tráfego previsíveis ou tarefas agendadas. |
|
|
VPA |
O VPA monitora o consumo de recursos dos pods, recomenda a alocação de CPU e memória e ajusta essa alocação sem alterar a quantidade de réplicas. |
O VPA recomenda e, opcionalmente, ajusta automaticamente as solicitações e limites de CPU e memória para os pods. |
Indicado para alocação estável de recursos, como aplicações com estado e grandes implantações monolíticas. O VPA geralmente entra em vigor quando os pods se recuperam de anomalias. |
|
|
Kubernetes-based Event Driven Autoscaling (KEDA) |
O KEDA permite o dimensionamento automático orientado por eventos para cargas de trabalho provenientes de diversas fontes. |
Quantidade de eventos, como o tamanho da fila. |
Projetado para trabalhos offline baseados em eventos que exigem dimensionamento instantâneo, como transcodificação de vídeo e áudio, tarefas orientadas por eventos e processamento de fluxo. |
|
|
Advanced Horizontal Pod Autoscaler (AHPA) |
O AHPA aprende padrões de flutuação da carga de trabalho a partir de métricas históricas para prever a demanda de recursos e habilitar o dimensionamento preditivo. |
|
Mais indicado para padrões periódicos de tráfego, como transmissão ao vivo, educação online e jogos. |
O controlador UnitedDeployment gerencia cargas de trabalho do mesmo tipo em vários subconjuntos, com ajuste de réplicas por subconjunto. Combine-o com as soluções de dimensionamento acima para obter flexibilidade entre diferentes tipos de recursos de computação. Consulte Implementar dimensionamento de carga de trabalho com base no controlador UnitedDeployment.
Dimensionamento de recursos de computação
Os componentes de dimensionamento de recursos de computação detectam pods pendentes e provisionam nós ECS ou instâncias de contêiner elásticas para atender às demandas de agendamento.
Para comparações de dimensionamento de nós, consulte Dimensionamento de nós.
As estatísticas de entrega de recursos na tabela a seguir são teóricas. Os valores reais podem variar conforme o ambiente.
|
Solução |
Descrição |
Cenário |
Eficiência de entrega de recursos |
Referências |
|
Dimensionamento automático de nós |
O ACK dimensiona automaticamente os nós quando os recursos do cluster não conseguem atender ao agendamento de pods. |
Adequado para todos os cenários, especialmente serviços online, tarefas de deep learning e dimensionamento em pequena escala. Recomendado para clusters com menos de 20 pools de nós com dimensionamento automático ou pools de nós com menos de 100 nós. |
Tempo necessário para adicionar 100 nós a um cluster:
|
|
|
Dimensionamento instantâneo de nós |
O dimensionamento instantâneo de nós oferece dimensionamento mais rápido, maiores taxas de sucesso na entrega e monitoramento da integridade do estoque de instâncias ECS em comparação ao dimensionamento automático de nós. Consulte Comparação de soluções. |
Apropriado para todos os cenários, especialmente clusters de grande escala que exigem dimensionamento mais rápido, dimensionamento com múltiplos tipos de instância e múltiplas zonas, ou agendamento avançado, como restrições de distribuição de topologia. Um cluster é considerado grande se qualquer pool de nós com dimensionamento automático tiver mais de 100 nós ou se o cluster possuir mais de 20 pools de nós com dimensionamento automático. |
Tempo necessário para adicionar 100 nós a um cluster:
|
|
|
Nós virtuais |
Os nós virtuais eliminam o gerenciamento de nós e o planejamento de capacidade. Um cluster suporta até 50.000 pods em nós virtuais, com a criação de até 10.000 pods em 1 minuto durante o scale-out. |
Aplicável a todos os cenários, especialmente tarefas, tarefas agendadas, computação de dados, aplicações de IA e picos de carga de trabalho. |
Tempo necessário para criar 1.000 pods em um cluster:
|
Faturamento
O Auto Scaling em si é gratuito. O componente de dimensionamento executa como pods, portanto, seu cluster deve ter pelo menos um nó. Você será cobrado pelos nós adicionados por meio do Auto Scaling. Consulte Visão geral do faturamento.
Perguntas frequentes
Consulte Perguntas frequentes sobre Auto Scaling.
Referências
Para pré-instalação ou dimensionamento de alto desempenho, consulte Imagens personalizadas para otimização de dimensionamento.
Para coletar logs de Auto Scaling, consulte Coletar arquivos de log de componentes do sistema.
Siga as Configurações recomendadas de carga de trabalho ao configurar suas cargas de trabalho.
Para contêineres serverless, o Knative dimensiona pods com base na contagem de solicitações e na concorrência, incluindo redução para zero. Consulte Ativar o dimensionamento automático para suportar flutuações de tráfego.