ANÚNCIO

~/questoes/devops

O que define um request de CPU no Kubernetes?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Aula de referência Resource Management no Kubernetes: performance sem desperdício
Para fixar

O que é um Request de CPU no Kubernetes?

Conceito central

Um request de CPU no Kubernetes define a quantidade mínima de recursos que o container precisa para funcionar adequadamente. O scheduler usa essa informação para decidir em qual nó do cluster alocar o pod, garantindo que cada container tenha o espaço necessário.

Por que essa resposta faz sentido

O request é a alocação mínima garantida que o Kubernetes reserva para o container. Diferente do limit (que é o máximo), o request funciona como uma promessa do cluster: 'este container terá pelo menos essa quantidade de CPU disponível'. O scheduler só coloca o pod em um nó se houver CPU suficiente para atender ao request.

Armadilhas comuns

  • Confundir request (mínimo garantido) com limit (máximo permitido) — são dois lados da mesma moeda, mas com funções diferentes no cluster.
  • Pensar que o request é calculado automaticamente pelo Kubernetes — você precisa definir o request manualmente na especificação do pod ou deployment.
  • Achar que o request só serve para monitoramento — na verdade, ele é fundamental para as decisões de alocação do scheduler, afetando diretamente onde o pod pode ser alocado.

Entenda as alternativas

A

Exato. O request é a quantidade mínima garantida que o container precisa. É usado pelo scheduler para tomar decisões de alocação e garante que o container tenha recursos suficientes para funcionar sem degradação severa.

B

Isso descreveria uma métrica de observabilidade, não um request. O request é uma configuração estática que você define, não um cálculo automático baseado no histórico de sete dias. (Embora o VPA possa usar histórico para recomendar valores melhores.)

C

Confunde request com limit. O limit é o teto máximo que o Kubernetes impõe. O request é o mínimo garantido. Além disso, quem usa o request para tomar decisões é o scheduler, não o contrário.

D

Isso descreve o limit, não o request. O limit é o máximo que um container pode consumir. O request é o mínimo. São dois conceitos diferentes e complementares no resource management do Kubernetes.

Dica prática: Ao criar um deployment, sempre defina requests conservadores baseados no que a aplicação realmente precisa no melhor caso, não no pior. Deixe o limit um pouco acima do request para permitir picos ocasionais. Se não tiver certeza dos valores, comece monitorando uma aplicação em produção, depois use o VPA para recomendações automáticas.

Revise pensando: Se você remove um request de um container, o que pode acontecer com a decisão do scheduler ao alocar esse pod em um nó?