Escalar um Deployment baseado no workload esperado requer uma supervisão via monitoramento e intervenções manuais para alterar o número de réplicas. O Kubernetes oferece primitivas para assumir este trabalho de forma automatizada, são os chamados autoscalers.
A nível de Deployment, podemos diferenciar dois tipos de autoscalers:
Horizontal Pod Autoscaler (HPA)
Scales the number of Pod replicas based on CPU(api v1) and memory(api v2) thresholds.
Vertical Pod Autoscaler (VPA)
Scales the CPU and memory allocation for existing Pods based on historic metrics.
Ambos autoscalers utilizam o metrics server que discutimos na seção 5 Observability. Consulte as instruções sobre como instalar e ativar o suporte as métricas (Monitoring).
Discutiremos como criar autoscalers, mas não entraremos em detalhes que demonstrem o comportamento prático deles sob determinados workloads. A documentação do Kubernetes fornece alguns exemplos de cenários práticos para simular o comportamento real sob o aumento de carga.
O HPA é um recurso padrão do Kubernetes, enquanto o VPA é suportado por cloud providers como um add-on ou precisa ser instalado manualmente. Portanto, apenas o HPA será relevante para o exame CKAD. Para aprender um pouco mais, confira a documentação do seu cloud provider ou o repositório no GitHub kubernetes/autoscaler.