Notícias
Novos modelos de linguagem da API Serverspace GPT
Serverspace Black Friday
DF
abril 29, 2025
Atualizado abril 29, 2025

Configuração do HPA (Horizontal Pod Autoscaler) no Kubernetes

Uma das características fundamentais da infraestrutura moderna em nuvem é sua capacidade de se adaptar dinamicamente a mudanças em tempo real. O escalonamento automático horizontal de cargas de trabalho garante resiliência, alta disponibilidade e uso eficiente dos recursos. No ecossistema do Kubernetes, esse papel é desempenhado pelo Horizontal Pod Autoscaler (HPA) — um controlador nativo que ajusta automaticamente o número de pods com base em métricas como uso de CPU, consumo de memória ou até métricas personalizadas de desempenho. Isso permite que os aplicativos respondam a picos de carga sem intervenção manual, garantindo o equilíbrio entre desempenho e custo.

O Horizontal Pod Autoscaler (HPA) é um controlador do Kubernetes que altera automaticamente a quantidade de pods em um Deployment, ReplicaSet ou StatefulSet com base em métricas (como uso de CPU, memória ou métricas personalizadas).

Pré-requisitos

Antes de configurar o HPA, você precisa:

  • Ter o Kubernetes 1.6 ou superior instalado
  • Ativar a coleta de métricas:
    • Instalar o metrics-server:
  • Verificar se as métricas estão sendo coletadas corretamente:
kubectl top pods

Exemplo de configuração do HPA

Suponha que você já tenha um deployment chamado my-app, com uma imagem de contêiner escalável.

1. Criar o Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
name: web-service
labels:
environment: production
spec:
replicas: 1
selector:
matchLabels:
app: web-service
template:
metadata:
labels:
app: web-service
spec:
containers:
- name: web-container
image: your-image:latest
ports:
- name: http
containerPort: 80
resources:
requests:
cpu: "100m"
limits:
cpu: "500m"

Aplicar a configuração:

kubectl apply -f deployment.yaml

Explicação:

  • apiVersion: apps/v1 — versão da API do Kubernetes para Deployment.
  • kind: Deployment — tipo de recurso criado.
  • metadata.name — nome do Deployment.
  • labels — rótulos usados para organização e filtragem.
  • spec.replicas — número de réplicas desejadas.
  • selector.matchLabels — seletor para identificar quais pods este deployment gerencia.
  • template — modelo para os pods criados.
  • containers— especificações do contêiner (nome, imagem, portas expostas, limites e requisições de CPU).

Um diagrama que ilustra a relação entre Deployment, ReplicaSet e Pod no Kubernetes:

Um diagrama que ilustra a relação entre Deployment, ReplicaSet e Pod no Kubernetes

2. Criar o HPA:

kubectl autoscale deployment my-app
--cpu-percent=50
--min=1
--max=5

Esse comando cria um HPA que visa manter o uso da CPU em torno de 50%, ajustando a quantidade de pods entre 1 e 5.

Verificando o status do HPA

kubectl get hpa

Exemplo de saída:

NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE my-app Deployment/my-app 30%/50% 1 5 1 3m

Testando o escalonamento

Você pode gerar carga nos pods para testar o escalonamento. Por exemplo, usando o stress dentro do contêiner:

kubectl exec -it -- apt update && apt install -y stress kubectl exec -it -- stress --cpu 1

Após alguns minutos, o HPA deverá aumentar a quantidade de réplicas automaticamente.

Uso de métricas personalizadas (opcional)

Para cenários avançados, é possível configurar o HPA com métricas personalizadas utilizando o Prometheus Adapter ou a External Metrics API.

Recomendações

  • Sempre defina requests e limits de recursos nos contêineres — o HPA depende dessas configurações.
  • Verifique os logs do metrics-server se o HPA não estiver funcionando corretamente.
  • Use ferramentas como Grafana para monitorar o comportamento do escalonamento.
  • Combine o HPA com o Cluster Autoscaler para escalonar também os nós do cluster, além dos pods.

Conclusão

O Horizontal Pod Autoscaler é uma ferramenta poderosa e flexível que permite ao Kubernetes adaptar automaticamente o número de réplicas dos pods com base na carga real do sistema. Sua adoção é essencial para construir aplicações resilientes, escaláveis e economicamente eficientes em ambientes de nuvem. O HPA reduz a necessidade de ajustes manuais durante picos de carga, otimizando o uso dos recursos computacionais e garantindo desempenho estável.

Para quem deseja começar rapidamente com Kubernetes e HPA, plataformas em nuvem com infraestrutura pronta são ideais. Por exemplo, na Serverspace, você pode alugar um cluster Kubernetes com pré-instalação, permitindo que você se concentre em suas aplicações imediatamente.

Vantagens do Kubernetes na Serverspace:

  • Risco mínimo: atualizações automáticas de todos os componentes reduzem falhas humanas.
  • Arquitetura flexível: suporte para desde testes locais até soluções corporativas em grande escala.
  • Alta disponibilidade: os pods são distribuídos entre vários nós, garantindo continuidade mesmo em falhas.
  • Escalabilidade real: execute milhares de contêineres por segundo sem aumentar a equipe.
Avaliação:
5 fora de 5
Аverage rating : 5
Avaliado por: 1
CEP 01311-930 São Paulo Avenida Paulista, nº 1765, 7º andar, Cj. 72, CV 10172, Bela Vista
+ 55 11 5118-1047
ITGLOBAL.COM BR LTDA
Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.