Repaso
English
Cloud y DevOpsIntermedioOPS-49

¿Cuál es la diferencia entre requests y limits de recursos en Kubernetes?

Opciones

  1. Requests se reservan para planificar; limits son el máximo permitido (Opción correcta)
  2. Son el mismo valor, escrito en dos sitios distintos
  3. Limits son los mínimos y requests son los máximos
  4. Requests se usan solo para almacenamiento, nunca para CPU o memoria

Respuesta

Requests: la cantidad reservada para planificar (garantizada); limits: el máximo que puede usar un contenedor (superar la memoria lo mata, superar la CPU lo frena)

Por qué

Para cada contenedor puedes fijar CPU y memoria.

  • requests: lo que reserva el scheduler; Kubernetes coloca el Pod en un nodo con esa cantidad libre.
  • limits: el techo. Si un contenedor supera su límite de memoria, muere (OOMKilled, código de salida 137). Si supera su límite de CPU, se ralentiza (throttling).

Sin requests el scheduler no puede planificar bien; el HPA también usa requests para calcular el porcentaje de CPU.

En la JVM, asegúrate de que el heap quepa dentro del límite de memoria.

resources:
  requests: { cpu: "250m", memory: "512Mi" }
  limits:   { cpu: "1",    memory: "1Gi" }

Recuerda

Request = garantizado para planificar. Limit = techo estricto.

Términos clave

Practica esta pregunta en Repaso