Escalabilidade computacional - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Escalabilidade computacional

O escalonamento computacional é um componente essencial para o desempenho do aplicativo em um ambiente dinâmico do Kubernetes. O Kubernetes reduz o desperdício por meio do ajuste dinâmico dos recursos de computação (como CPU e memória) em resposta à demanda em tempo real. Esse recurso ajuda a evitar o provisionamento excessivo ou insuficiente, o que também pode economizar despesas operacionais. O Kubernetes elimina efetivamente a necessidade de intervenção manual, permitindo que a infraestrutura aumente automaticamente durante os horários de pico e diminua nos períodos fora do pico.

O escalonamento computacional geral do Kubernetes automatiza o processo de escalabilidade, o que aumenta a flexibilidade e a escalabilidade do aplicativo e aprimora seu comportamento tolerante a falhas. Em última análise, os recursos do Kubernetes aprimoram a excelência operacional e a produtividade.

Esta seção aborda os seguintes tipos de escalabilidade computacional:

Cluster AutoScaler

Dependendo das necessidades dos pods, a ferramenta Cluster Autoscaler modifica automaticamente o tamanho adicionando nós quando necessário ou removendo nós quando não são necessários e estão subutilizados.

Considere a ferramenta Cluster Autoscaler como uma solução de escalabilidade para cargas de trabalho em que a demanda aumenta gradualmente e a latência no escalonamento não é um grande problema.

A ferramenta Cluster Autoscaler fornece os seguintes recursos principais:

  • Dimensionamento — Aumenta e diminui os nós dinamicamente em resposta às demandas reais de recursos.

  • Agendamento de pods — ajuda a garantir que cada pod esteja operando e tenha os recursos necessários para funcionar, evitando a escassez de recursos.

  • Custo-benefício — elimina as despesas desnecessárias de operar nós subutilizados ao eliminá-los.

Autoescalador de cluster com provisionamento excessivo

O autoescalador de cluster com superprovisionamento funciona de forma semelhante ao autoescalador de cluster, pois implanta nós de forma eficiente e economiza tempo executando pods de baixa prioridade nos nós. Com essa técnica, o tráfego é redirecionado para esses pods em resposta a picos repentinos na demanda, permitindo que o aplicativo continue operando sem interrupção.

O escalador automático de cluster com provisionamento excessivo oferece os recursos de pods fictícios que podem ser usados para implantar e executar nós com facilidade quando a carga de trabalho é muito grande, a latência não é necessária e o escalonamento precisa ser rápido.

O escalador automático de cluster com provisionamento excessivo fornece os seguintes recursos principais:

  • Melhor capacidade de resposta — ao tornar o excesso de capacidade constantemente acessível, leva menos tempo para escalar o cluster em resposta aos picos de demanda.

  • Reserva de recursos — O gerenciamento de picos inesperados no tráfego auxilia efetivamente no gerenciamento correto com pouco tempo de inatividade.

  • Escalabilidade suave — Minimizar os atrasos na alocação de recursos facilita um processo de escalabilidade mais contínuo.

Karpenter

O Karpenter for Kubernetes supera a ferramenta tradicional de escalonamento automático de cluster em termos de código aberto, desempenho e personalização. Com o Karpenter, você pode iniciar automaticamente somente os recursos computacionais necessários para lidar com as demandas do seu cluster em tempo real. O Karpenter foi projetado para oferecer um dimensionamento mais eficiente e responsivo.

Aplicativos com cargas de trabalho extremamente variáveis ou complexas, nas quais decisões rápidas de escalonamento são essenciais, se beneficiam muito do uso do Karpenter. Ele se integra AWS, oferecendo melhor implantação e otimização da seleção de nós.

O Karpenter inclui os seguintes recursos principais:

  • Provisionamento dinâmico — O Karpenter fornece as instâncias e os tamanhos certos para a finalidade e provisiona novos nós dinamicamente com base nos requisitos específicos dos pods.

  • Programação avançada — Usando o posicionamento inteligente do pod, o Karpenter organiza os nós de forma que recursos como GPU, CPU, memória e armazenamento sejam usados da forma mais eficaz possível.

  • Escalonamento rápido — O Karpenter pode escalar rapidamente, reagindo frequentemente em segundos. Essa capacidade de resposta é útil para padrões de tráfego repentino ou quando a carga de trabalho exige escalabilidade imediata.

  • Eficiência de custos — Ao escolher cuidadosamente a instância mais eficaz, você pode reduzir os custos operacionais e aproveitar as alternativas adicionais de economia de custos oferecidas por AWS, como instâncias sob demanda, instâncias spot e instâncias reservadas.