Ferramenta Gratuita

Calculadora de Recursos Kubernetes: Requests, Limits & Custo

Pare de chutar valores no seu YAML. Defina o tamanho exato dos seus Pods para garantir estabilidade e previsibilidade na fatura da nuvem.

Configurar resources no Kubernetes é um equilíbrio delicado. Se errar para menos, seu app sofre com CPU Throttling (lentidão) ou morre com OOMKilled (falta de memória). Se errar para mais, você desperdiça dinheiro reservando capacidade ociosa nos Nodes. Esta calculadora usa heurísticas de SRE/DevOps para sugerir uma configuração base segura para Java, Node.js, Go e Python.

Configure seu Pod

Requests por segundo que cada Pod vai receber
Latência média da sua aplicação por request
Burstable: picos repentinos (e-commerce, eventos). Estável: tráfego previsível.

Como funciona o cálculo de Requests e Limits

A calculadora segue heurísticas de SRE/DevOps para dimensionar Pods com base no perfil real de uso.

CPU: de RPS para milicores

O cálculo de CPU requests parte do princípio de que cada request ocupa a CPU pelo tempo de resposta. A fórmula RPS x Latência (s) x 1000 converte tráfego em milicores necessários. Um fator de ajuste por stack compensa overhead do runtime (ex: JVM consome mais CPU em GC que Go).

Para CPU limits, em cargas burstable usamos 4x o request (absorvendo picos sem throttling). Em cargas estáveis, 2x é suficiente. Muitas equipes de SRE preferem não definir CPU limits para evitar throttling desnecessário.

Memória: runtime base + overhead por request

Cada stack tem uma memória base diferente: Java/JVM (~350Mi com heap padrão), Node.js (~70Mi com V8), Go (~30Mi, muito leve) e Python (~100Mi). A cada request simultâneo, buffers, alocações e contextos adicionam memória proporcional ao RPS.

O limits.memory é definido como request + 30%. Se o Pod ultrapassar esse limite, o Kubernetes o encerra com OOMKilled, protegendo os outros workloads no Node.

Estimativa de custo: quanto cada Pod pesa na fatura

O custo é estimado com base em preços médios de instâncias AWS on-demand (~$0.04/vCPU/h e ~$0.005/GB/h). Em 730 horas/mês, um Pod com 500m de CPU e 256Mi de RAM custa aproximadamente $15/mês. Multiplique pelo número de réplicas para ter o custo total do serviço.

Guia de Resources do Kubernetes

Referência rápida de cada campo calculado por esta ferramenta.

requests.cpu

CPU mínima garantida para o Pod. Baseada no tráfego esperado (RPS) multiplicado pela latência. O Kubernetes usa esse valor para decidir em qual Node agendar o Pod.

requests.memory

Memória mínima garantida. Inclui a memória base do runtime (JVM, V8, etc.) mais o overhead por request simultâneo. Se o Node não tiver essa memória disponível, o Pod não será agendado.

limits.cpu

Teto máximo de CPU. Se o Pod tentar usar mais, sofre throttling (lentidão forçada). Em cargas burstable, definimos um teto mais alto para absorver picos sem degradar performance.

limits.memory

Teto máximo de memória. Se o Pod ultrapassar esse valor, é imediatamente encerrado com OOMKilled. Definimos +30% acima do request como margem de segurança contra picos.

Perguntas frequentes sobre Resources no Kubernetes

Dúvidas comuns de DevOps e SREs sobre requests, limits, OOMKilled e FinOps.

Qual a diferença entre Requests e Limits no Kubernetes?

Requests é o que o Kubernetes garante para o seu Pod (usado para agendamento nos Nodes). Limits é o teto máximo: se ultrapassar CPU, o Pod sofre throttling (lentidão); se ultrapassar memória, é reiniciado com OOMKilled.

Por que meu Pod sofre OOMKilled?

Geralmente porque o limits.memory está muito baixo para o pico de uso da aplicação, ou sua aplicação tem um vazamento de memória (memory leak). A solução é ajustar o limite ou investigar o consumo real com ferramentas como Prometheus + Grafana.

Devo definir CPU Limits?

É polêmico na comunidade. Limites de CPU muito baixos causam throttling desnecessário quando o Node tem capacidade ociosa. Nossa calculadora sugere limites "burstable" (mais altos que o request) para evitar lentidão sem perder proteção. Muitas equipes de SRE optam por não definir CPU limits.

Como saber se estou gastando demais com Kubernetes?

Compare o total de resources.requests reservados com o uso real (métricas de CPU e memória). Se o uso real for consistentemente abaixo de 30% dos requests, você está superprovisionando. Ferramentas como Kubecost e KRR (Kubernetes Resource Recommender) ajudam nessa análise.

O que é CPU Throttling e como identificar?

CPU Throttling acontece quando o Pod tenta usar mais CPU que o limits.cpu definido. O Kubernetes "freia" o processo, causando lentidão. Você identifica via métricas container_cpu_cfs_throttled_seconds_total no Prometheus ou na aba de métricas do seu cloud provider.

Essa calculadora substitui um monitoramento real?

Não. Ela fornece uma configuração base matematicamente sólida para evitar erros grosseiros. O ajuste fino ideal vem da análise do comportamento real em produção com métricas de Prometheus/Grafana, VPA (Vertical Pod Autoscaler) e revisão periódica de FinOps.

Seus Pods podem custar menos e rodar melhor

Calculadora é o ponto de partida. Para análise de custos reais, HPA, VPA e otimização de cluster, fale com quem vive Kubernetes e FinOps no dia a dia.

Análise de custos e performance Kubernetes com plano de ação priorizado. Retornamos em 1 dia útil.