/
Calculadora de Recursos Kubernetes
Categoría

Calculadora Recursos Kubernetes & Pods

Calculadora interactiva de recursos para Kubernetes (sizing de CPU y memoria de Pods) con análisis y visualización en tiempo real en el navegador.

Motor de QoS
Reservas cloud
Ajustes predefinidos
Modo de cálculo

Perfilador de cargas de trabajo

CPU base
450m (0.45 cores)
Selección rápida
Memoria base
1,536 MiB (1.50 GiB)
Selección rápida
Estrategia de QoS
Burstable
Ratio Limit/Request de CPU2.00x
Margen para límite de memoria+25%
Proveedor cloud
Máx. de pods por nodo
CPU para DaemonSets
Memoria para DaemonSets
Solicitudes totales por pod: 563m / 1,920Mi
6 Cantidad de pods
Nodos necesarios1nodosm6i.xlarge
Solicitudes del pod (Requests)563m CPU1,920 MiB RAM
Clase QoS asignadaBurstableadj: 883
Coste mensual estimado$140.16730 Horas por mes
Capacidad asignable por nodo (Allocatable)
4 vCPU / 16 GiB Raw
Distribución de CPU (Requests vs. Limits) (Total: 4000m)Asignable: 3670m (91.8%)
Kube-Reserved: 80mDaemonSet Overhead: 250mWorkload Pods: 3378mCapacidad libre (Slack)
kube-reserved (80m)DaemonSet (250m)Carga de trabajo (Pods) (3378m)Capacidad libre (Slack)
Distribución de memoria (Total: 16384 MiB)Asignable: 13022 MiB (79.5%)
Kube-Reserved RAM: 2762MiBDaemonSet RAM: 600MiBWorkload RAM: 11520MiBCapacidad libre (Slack)
kube-reserved (2762 MiB)DaemonSet (600 MiB)Carga de trabajo (Pods) (11520 MiB)Capacidad libre (Slack)
Diagnóstico de dimensionamiento
Cuello de botellaBalanced / Density Aligned
Estado de CFS ThrottlingModerate (Burst headroom available)
Comportamiento de desalojoMedium (Protected up to request ceiling)
Estado de ejecución del AST
Etiqueta de formato: VISUALIZER
Métrica principal
3.38 Unidad de vCPUs / 11.25 GiB de RAM
6 Réplicas activas
Eficiencia / Capacidad
92.0% vCPU / Cores / 88.5% Unidad de RAM
Balanced / Density Aligned
Rendimiento neto
$140.16
1 nodos de m6i.xlarge

Procesamiento en el cliente

Cálculo de alto rendimiento ejecutado íntegramente en la memoria del navegador.

Cero transferencias al servidor

Todos los datos permanecen estrictamente locales, sin comunicación con servidores externos.

Exportación para producción

Formatos limpios y optimizados listos para su despliegue inmediato.

Referencia técnica y guía de arquitectura

Calculadora Recursos Kubernetes & Pods — Guía de referencia

Calculadora interactiva de recursos de Kubernetes (dimensionamiento de CPU y memoria de pods) con análisis y visualización en tiempo real del lado del cliente.

Calculadora Recursos Kubernetes & Pods — Guía de referencia — Arquitectura en memoria del lado del cliente y flujo de datos
Calculadora Recursos Kubernetes & Pods — Guía de referencia — Arquitectura en memoria del lado del cliente y flujo de datos

Parámetros clave y controles

Uso base de núcleos de CPU por pod (P95 en milinúcleos)Milinúcleos (mCPU) / decimal vCPU

Carga de trabajo sostenida en el percentil 95 (P95) de núcleos de CPU muestreada en una ventana de observación de 7 días en Prometheus o Datadog bajo tráfico de producción en estado estable, excluyendo anomalías de arranque en frío. Evaluada frente a los periodos contables de cuota de 100 ms del Completely Fair Scheduler (CFS) de Linux.

Por defecto: 250m
Porcentaje de margen de seguridad y búfer para picos diurnosPorcentaje (%)

Margen de seguridad dinámico calculado como Request_CPU = Baseline_CPU * (1 + Headroom_Percent / 100). Los estándares de oro de la ingeniería de fiabilidad del sitio (SRE) establecen entre un 20 % y un 30 % de margen para absorber repuntes diurnos de tráfico sin provocar expulsiones de pods ni fallos de programación a nivel de nodo.

Por defecto: 25%
Working set de memoria base del pod (RSS + caché activa)Megabytes (MiB) / Gigabytes (GiB)

Tamaño del conjunto residente activo (RSS) y memoria no recuperable derivados de la métrica container_memory_working_set_bytes de Kubernetes. A diferencia de la memoria caché de páginas recuperable, este valor establece el umbral base antes de activar los controladores de presión de memoria de los cgroups v1/v2 de Linux.

Por defecto: 512Mi
Especificación de clase de calidad de servicio (QoS) del podNivel de QoS de Kubernetes (Guaranteed | Burstable | BestEffort)

Nivel de calidad de servicio que rige la puntuación oom_score_adj del kernel de Linux. Guaranteed requiere cpu.limits == cpu.requests Y memory.limits == memory.requests (oom_score_adj: de -997 a -998, menor prioridad de desalojo); Burstable requiere requests < limits (oom_score_adj dinámico: 1000 - 1000 * mem_req / node_mem); BestEffort omite ambos (oom_score_adj: 1000, primeros en ser desalojados).

Por defecto: Burstable
Perfil de hardware de la instancia de nodo de trabajo (Worker Node)Tipo de instancia de cómputo (vCPU / GiB de RAM)

Especificación de hardware de la máquina virtual o bare-metal anfitrión (ej. AWS m6i.2xlarge con 8 vCPU y 32 GiB de RAM, o GCP n2-standard-8). Sujeto a deducciones seccionales de la nube: Asignable = Capacidad_Bruta - Kubelet_Reserved - System_Reserved - Umbral_Hard_Eviction (100Mi).

Por defecto: 8 vCPU / 32 GiB RAM
Número de réplicas horizontales del despliegue (Deployment)Entero (Pods / Objetivos de escalado)

Cantidad objetivo de réplicas para alta disponibilidad y redundancia en dominios de fallo N+1 / N+2 entre zonas de disponibilidad. Determina directamente las dimensiones de empaquetado (bin-packing) en los nodos de trabajo: Nodos_Necesarios = max(ceil(Total_CPU_Req / Allocatable_CPU), ceil(Total_Mem_Req / Allocatable_Mem), ceil(Total_Replicas / Effective_Max_Pods)).

Por defecto: 12

Consejos profesionales y mejores prácticas

Elimina caídas bruscas de latencia P99 omitiendo límites de CPU en entornos multihilo con CFS

Definir 'resources.limits.cpu' activa el mecanismo de cuotas del Completely Fair Scheduler de Linux (cpu.cfs_quota_us en una ventana de cpu.cfs_period_us de 100 ms). Los entornos de ejecución multihilo (gorutinas de Go, hilos de recolección de basura de la JVM, pools de workers de Node.js) programan trabajo de forma concurrente en todas las vCPU del nodo; si 8 hilos se ejecutan durante 12,5 ms, consumen 100 ms de cuota acumulada en apenas 13 ms de tiempo real, obligando al kernel de Linux a limitar (throttle) todo el proceso durante los 87 ms restantes del periodo. Esto genera picos artificiales de latencia P99 y tiempos de espera agotados (timeouts) aguas arriba, a pesar de que el nodo anfitrión opere a un 20 % de uso de CPU. La mejor práctica de SRE para microservicios críticos en latencia es configurar solicitudes (requests) de CPU generosas que cubran el P95 más el margen de seguridad, omitir los límites de CPU y mantener límites estrictos de memoria para proteger contra fugas de memoria.

Aplica curvas escalonadas por tramos para calcular la capacidad asignable en nodos GKE/EKS

Nunca calcules la capacidad del clúster basándote en las especificaciones brutas de hardware. Los proveedores cloud deducen capacidad del sistema mediante la fórmula oficial por tramos: RAM_Reservada = 25 % de [0..4 GiB] + 20 % de [4..8 GiB] + 10 % de [8..16 GiB] + 6 % de [16..128 GiB] + 2 % de [>128 GiB], complementado con un umbral de desalojo crítico (hard eviction threshold) inmutable de 100 MiB. En un nodo de trabajo de 32 GiB (ej. AWS m6i.2xlarge o GCP n2-standard-8), esto deduce 25%(4) + 20%(4) + 10%(8) + 6%(16) + 0,1 GiB = 1,0 + 0,8 + 0,8 + 0,96 + 0,1 = 3,66 GiB, dejando únicamente ~28,34 GiB de RAM asignable (Allocatable). Omitir este cálculo en los algoritmos de bin-packing provoca pods pendientes sin programar y desalojos inmediatos ante la presión de arranque de los nodos.

Evita el agotamiento de IP por MaxPods de AWS VPC CNI en nodos de alta densidad

Los requisitos de nodos en un clúster suelen verse limitados no por el agotamiento de CPU o memoria, sino por los límites de las interfaces de red del CNI. Con el plugin predeterminado AWS VPC CNI, la cantidad máxima de pods por instancia EC2 se rige por los límites de ENI: MaxPods = (ENI - 1) * (IPv4_por_ENI - 1) + 2. Una instancia m6i.large (2 vCPU, 8 GiB) solo admite 3 ENI con 10 IP cada una, imponiendo un límite estricto de densidad de 29 pods por ligero que sea el contenedor. Al calcular el número de nodos de trabajo mediante Nodos_Necesarios = max(ceil(Total_CPU_Req / Allocatable_CPU), ceil(Total_Mem_Req / Allocatable_Mem), ceil(Total_Replicas / Effective_Max_Pods)), si no se tiene en cuenta este techo de MaxPods efectivo, los nodos quedarán a mitad de capacidad de cómputo mientras las réplicas restantes quedan bloqueadas sin poder programarse.

Aprovecha pods con QoS Guaranteed y oom_score_adj fijo para proteger almacenes de datos persistentes

Bajo presión de memoria, el Out-Of-Memory (OOM) Killer del kernel de Linux evalúa cada proceso a través de su /proc/[pid]/oom_score. Kubernetes traduce las clases de calidad de servicio (QoS) de los pods en un valor de oom_score_adj: los pods Guaranteed (cpu.limits == cpu.requests Y memory.limits == memory.requests) reciben -997 o -998, lo que los inmuniza prácticamente contra el desalojo a menos que el propio kernel agote su memoria crítica. Los pods Burstable reciben puntuaciones dinámicas entre 2 y 999 calculadas como max(floor(1000 * mem_request / node_capacity), 1000 - 1000 * mem_request / node_capacity), mientras que los pods BestEffort se fijan en 1000 (eliminados de inmediato). Configura siempre pods de PostgreSQL, Redis, Kafka y controladores de Ingress con QoS Guaranteed para evitar bucles de conmutación por error en cascada durante situaciones de inanición de memoria en el nodo.

Aislamiento criptográfico en navegador y determinismo de bin-packing O(n)

Para garantizar la privacidad de infraestructura bajo modelos de confianza cero (Zero Trust), las simulaciones de dimensionamiento de cómputo y empaquetado vectorial multidimensional (bin-packing) se ejecutan estrictamente dentro del entorno del navegador del cliente con una complejidad algorítmica First-Fit-Decreasing O(n). Las topologías de recursos del clúster, definiciones de pods y recuentos de réplicas permanecen totalmente aisladas en la memoria del cliente, utilizando primitivas CSPRNG nativas de la Web Crypto API para generar entropía visual sin telemetría de servidor ni registro de tráfico saliente (egress), cumpliendo íntegramente con los estándares de confidencialidad auditados bajo SOC 2 Tipo II y normativas RFC.

Problemas comunes y soluciones

⚠️Pods que finalizan con código de salida 137 (OOMKilled) aunque las métricas de la aplicación indiquen memoria bajo el límite

El código de salida 137 indica una terminación mediante la señal SIGKILL (128 + 9). Esta discrepancia ocurre porque los entornos de ejecución de aplicaciones (como el heap de Node.js o el runtime de Go) reportan únicamente memoria virtual o uso del heap administrado, mientras que el controlador de memoria cgroup v1/v2 del kernel de Linux rastrea container_memory_working_set_bytes, que incluye archivos mapeados en memoria (mmap), caché de páginas de E/S activa y asignaciones nativas fuera del heap administrado. Cuando memory.current supera memory.max (limits.memory), el controlador cgroup ejecuta de inmediato un OOM kill sin notificar a la aplicación. Solución: Consulta en Prometheus la métrica 'container_memory_working_set_bytes{pod=...}' en lugar de las métricas a nivel de aplicación; incrementa resources.limits.memory entre un 25 % y un 35 % por encima del working set P95 observado, o ajusta los descriptores de archivos mapeados en memoria y los pools de hilos nativos de la aplicación.

⚠️Aplicaciones multihilo experimentan picos severos de latencia P99 pese a un bajo uso de CPU en el clúster

Es la trampa clásica de limitación por cuotas (throttling) del Completely Fair Scheduler (CFS) de Linux. Al definir 'resources.limits.cpu', el kubelet programa 'cpu.cfs_quota_us' sobre un periodo base de 100 000 µs (100 ms). Las aplicaciones multihilo (recolección de basura paralela en JVM de Java, planificación de gorutinas en Go con runtime.GOMAXPROCS, servidores web multi-worker) ejecutan hilos de forma concurrente en todos los núcleos del nodo anfitrión. Si un pod tiene un límite de 1000m (1 núcleo = 100 ms de cuota) en un nodo de 8 núcleos, 8 hilos activos agotarán 100 ms de cuota acumulada en tan solo 12,5 ms de tiempo real, forzando al kernel de Linux a pausar (throttle) todos los hilos del contenedor durante los 87,5 ms restantes del periodo. Solución: Inspecciona en Prometheus la métrica 'container_cpu_cfs_throttled_periods_total / container_cpu_cfs_periods_total'; si la tasa de limitación supera el 5 %, elimina 'resources.limits.cpu' por completo o aumenta los límites a 3 veces las solicitudes (requests), y configura los pools de hilos del runtime (ej. GOMAXPROCS o ActiveProcessorCount en Java) para alinearse estrictamente con las solicitudes de CPU del pod.

⚠️Réplicas del despliegue bloqueadas en estado Pending con '0/N nodes available: Insufficient cpu' pese a que los nodos tienen capacidad ociosa

Las decisiones de programación de pods en Kubernetes se evalúan estrictamente frente a las solicitudes ('requests') de recursos de los pods, NO frente al consumo real de CPU en tiempo real. Si cuatro pods con solicitudes de 2000m de CPU se programan en un nodo de 8 vCPU, el nodo queda comprometido al 100 % para el kube-scheduler, incluso si los contenedores se encuentran inactivos con solo un 5 % de uso. Un quinto pod que solicite 1000m será rechazado y permanecerá en estado 'Pending'. Además, los DaemonSets (ej. calico-node, aws-node, fluentbit, datadog) consumen capacidad fija en cada nodo antes de que los pods de usuario puedan ubicarse. Solución: Ejecuta 'kubectl describe node <nombre>' para revisar la sección 'Allocated resources'; ajustar el tamaño de los pods reduciendo las solicitudes de CPU al uso P95 real en estado estable más un 20 % de margen libera compromisos en el planificador, permitiendo al kube-scheduler empaquetar cargas pendientes sin necesidad de aprovisionar nodos adicionales innecesarios en la nube.

Preguntas frecuentes (FAQ)

¿Cómo calcular los requests y limits de CPU y memoria en Kubernetes?▼

Para calcular las solicitudes (requests) de CPU y memoria, determina el consumo P95 en estado estable mediante Prometheus o Datadog en un periodo de 7 días. Establece las solicitudes equivalentes al P95 más un margen del 20 % al 30 % (Request = P95 * 1,25) para absorber picos diurnos de tráfico sin provocar expulsiones por parte del planificador. Para los límites (limits) de memoria, define un techo entre un 20 % y un 30 % superior a la solicitud para amortiguar expansiones transitorias del heap y búferes de archivos mapeados en memoria antes de alcanzar el umbral memory.max del cgroup de Linux. Para los límites de CPU, la mejor práctica en microservicios críticos en latencia es fijar los límites en 2x-3x las solicitudes u omitirlos por completo para evitar la limitación de cuotas (throttling) del Completely Fair Scheduler (CFS) de Linux, combinando límites sin restricciones con autoescalado de clúster y límites de memoria estrictos.

¿Cuál es la diferencia entre las clases de QoS Guaranteed y Burstable en Kubernetes?▼

La clase de calidad de servicio (QoS) Guaranteed exige que las solicitudes y límites de CPU y memoria sean exactamente iguales (cpu.limits == cpu.requests Y memory.limits == memory.requests) en todos los contenedores del pod, lo que asigna un valor oom_score_adj de -997 a -998 y otorga inmunidad casi total frente a la escasez de memoria en el nodo. La clase Burstable ocurre cuando las solicitudes son estrictamente inferiores a los límites o cuando se omiten los límites de CPU, generando un oom_score_adj calculado dinámicamente entre 2 y 999. Ante situaciones de presión de memoria en el nodo, el kubelet y el OOM killer de Linux terminan primero los pods BestEffort (oom_score_adj: 1000), luego los pods Burstable que excedan su solicitud de memoria, y en última instancia los pods Guaranteed.

¿Se deben configurar siempre límites de CPU en pods de producción en Kubernetes?▼

No; establecer límites de CPU suele ser contraproducente para microservicios multihilo. Aplicar 'resources.limits.cpu' instruye al Completely Fair Scheduler del kernel de Linux a imponer cuotas estrictas en milisegundos (cpu.cfs_quota_us) en ventanas de 100 ms. Cuando los entornos multihilo (Go, Java, pools de workers en Node.js) generan ráfagas de trabajo distribuidas en múltiples núcleos del anfitrión, agotan la cuota en 10-20 ms, lo que obliga al kernel a limitar (throttle) la ejecución durante los 80-90 ms restantes. Esto provoca picos artificiales de latencia P99 y cancelaciones por timeout en conexiones mientras el nodo anfitrión permanece inactivo al 60 %. Las arquitecturas de producción suelen aplicar solicitudes de CPU holgadas, omitir los límites de CPU y mantener límites de memoria rigurosos para evitar caídas en cascada por falta de memoria.

¿Por qué los pods de Kubernetes fallan con el código de salida 137 OOMKilled?▼

El código de salida 137 indica la terminación de un proceso por la señal SIGKILL de Linux (128 + 9 = 137) provocada por el Out-Of-Memory (OOM) Killer. Esto sucede en dos escenarios principales: 1) Superación del límite de cgroup del contenedor, donde container_memory_working_set_bytes excede 'resources.limits.memory' y el controlador cgroup del kernel termina el contenedor infractor de forma inmediata; o 2) Agotamiento de memoria física en el nodo anfitrión, donde la RAM disponible cae por debajo del umbral de desalojo estricto del kubelet (100 MiB por defecto) y el OOM killer del sistema selecciona y elimina los pods con el mayor oom_score_adj (habitualmente pods BestEffort o Burstable que excedan sus solicitudes).

¿Cuánta CPU y memoria reserva Kubernetes para el sistema operativo del nodo?▼

Los proveedores cloud reservan capacidad del sistema mediante curvas escalonadas por tramos para kube-reserved y system-reserved. En AWS EKS y GCP GKE, las reservas de memoria siguen una curva oficial por tramos: 25 % de los primeros 4 GiB, 20 % de los siguientes 4 GiB (de 4 a 8 GiB), 10 % de los siguientes 8 GiB (de 8 a 16 GiB), 6 % de los siguientes 112 GiB (de 16 a 128 GiB) y 2 % de la memoria que supere los 128 GiB, además de un umbral inmutable de desalojo crítico de 100 MiB. Para la CPU, las reservas deducen aproximadamente el 6 % del primer núcleo, el 1 % del segundo núcleo, el 0,5 % de los núcleos 3 y 4, y el 0,25 % de los núcleos por encima de 4 para proteger el kernel de Linux, systemd y los demonios del kubelet.

¿Cómo calcular el número de nodos de trabajo necesarios para un clúster de Kubernetes?▼

Calcula los nodos totales requeridos mediante un empaquetado vectorial multidimensional (bin-packing): Nodos_Necesarios = max(ceil(Total_CPU_Req_Pods / CPU_Asignable_Nodo), ceil(Total_Mem_Req_Pods / Memoria_Asignable_Nodo), ceil(Total_Replicas / Max_Pods_Efectivo)). Primero, deduce del hardware bruto las reservas por tramos del proveedor cloud y la huella de los DaemonSets para calcular la capacidad real asignable (Allocatable). Luego, suma las solicitudes de todas las réplicas de pods. Por último, evalúa si el clúster está limitado por CPU, por memoria o por restricciones de densidad de IP del CNI (como los límites de ENI en AWS VPC CNI), y redondea al siguiente entero hacia arriba para garantizar alta disponibilidad N+1.

Herramientas y utilidades relacionadas

Todas las herramientas →
Calculadora de Series Geométricas (Término n y Suma)Mathematics

Calcula el término n-ésimo, suma parcial finita y suma infinita de cualquier progresión geométrica con diagnósticos de convergencia y tabla de términos.

Abrir herramienta→
Calculadora Lote Económico (EOQ)finance

Calcula el lote económico de pedido (EOQ), el tamaño óptimo de lote y los costes de posesión anuales. Minimiza gastos con punto de pedido y descuentos por volumen.

Abrir herramienta→
Calculadora de Salto Vertical & Matehealth

Calculadora biomecánica que determina el salto vertical exacto para hacer un mate en un aro de 3,05 m (10 pies) según el alcance estático, penalización por agarre del balón, descenso escapular bilateral y margen por estilo de mate, con tiempo de suspensión, velocidad de despegue y potencia pico de Sayers.

Abrir herramienta→
Temperatura de la Masa (DDT) & Aguaculinary

Calcula la temperatura exacta del agua de amasado para panadería con fórmulas DDT de 3 y 4 factores, proporción de hielo picado y calibración de fricción.

Abrir herramienta→
Calculadora de Secciones Cónicasmath

Calculadora y graficador de secciones cónicas. Resuelve ecuaciones generales y canónicas de elipses, parábolas e hipérbolas con focos, directriz, vértices y paso a paso.

Abrir herramienta→
Altura de Árboles (Clinómetro)Utilidad

Calcula la altura total de árboles mediante lecturas de clinómetro a dos ángulos y distancia inclinada. Ajusta por altura visual, pendiente del terreno, proporción de copa y radio de seguridad de tala.

Abrir herramienta→