Estratégias de Escalabilidade no Kubernetes

Horizontal Pod Scaling (HPA):

Utiliza o Metrics Server e o API Server para monitorar o uso de recursos (CPU/memória) dos pods em execução. O HPA ajusta automaticamente a quantidade de pods em um nó, adicionando mais pods quando a carga aumenta, permitindo escalabilidade horizontal (scale out).
Vertical Pod Scaling (VPA):

Também utiliza o Metrics Server e o API Server, mas em vez de adicionar mais pods, ele ajusta os recursos de um pod específico, aumentando a quantidade de CPU e memória alocada. Isso permite a escalabilidade vertical (scale up), otimizando o desempenho dos pods existentes.
Cluster Auto Scaling:

O Cluster Auto Scaler atua ao detectar a necessidade de mais pods do que os nós existentes podem suportar. Ele se comunica com o Scheduler para lançar novos nós e assim acomodar os pods pendentes. Essa estratégia lança novos nós para o cluster conforme necessário, expandindo a infraestrutura de maneira automática.
Manual Scaling:

Aqui, o escalonamento é feito manualmente pelo administrador utilizando comandos do Kubectl para adicionar ou remover nós e pods. O administrador tem controle direto sobre o ajuste da infraestrutura.
Predictive Scaling:

Esse método utiliza previsões de Machine Learning para ajustar proativamente os recursos. Através de previsões feitas com base em eventos do KEDA (Kubernetes Event Driven Autoscaler), o controlador do cluster age antecipadamente, ajustando o balanceamento de recursos e evitando gargalos antes que ocorram.
Custom Metrics Based Scaling:

A escalabilidade é baseada em métricas personalizadas obtidas de um Custom Metrics Registry. O HPA ajusta o número de pods conforme essas métricas definidas pelo administrador, permitindo uma escala baseada em dados personalizados e não apenas em métricas de CPU e memória.