Kubernetes · 4 min read · Dec 09, 2025
Límites de Recursos en Kubernetes

Si el nodo tiene suficientes recursos disponibles, es posible que un contenedor use más recursos. Podemos especificar cuánto de cada recurso necesita un Contenedor. Los recursos comunes a especificar son CPU y memoria. Cuando especificamos la solicitud de recursos para los Contenedores en un Pod, el programador decide en qué nodo colocar el Pod. Cuando especificamos un límite de recursos para un Contenedor, el kubelet se encarga de los límites para que el contenedor en ejecución no pueda usar más de ese límite que establecimos.
Por ejemplo, si establecemos una solicitud de memoria de 100 MiB para un contenedor, entonces el contenedor puede intentar usar más RAM. Pero si establecemos un límite de memoria de 4GiB para ese Contenedor, el tiempo de ejecución evita que el contenedor use más que el límite de recursos configurado.
La CPU y la memoria se conocen como recursos de computación.
Cada Contenedor de un Pod puede especificar uno o más de los siguientes:
- límites en cpu
- límites en memoria
- límites en hugepages-
- solicitudes para cpu
- solicitudes para memoria
- solicitudes para hugepages-
Para saber más sobre los recursos en Kubernetes, haz clic aquí para visitar la documentación oficial de Kubernetes.
En este artículo, veremos un ejemplo de un límite de recursos y solicitud para CPU y Memoria. También utilizaremos el Servidor de Métricas. El Servidor de Métricas es un agregador de datos de uso de recursos en el clúster y no se despliega por defecto en el clúster. Usaremos este Servidor de Métricas para ver el consumo de recursos por pods.
Requisitos Previos
- Clúster de Kubernetes con al menos 1 nodo trabajador.
Si deseas aprender a crear un Clúster de Kubernetes, haz clic aquí. Esta guía te ayudará a crear un clúster de Kubernetes con 1 Maestro y 2 Nodos en Instancias EC2 de AWS Ubuntu 18.04.
¿Qué haremos?
- Límites de recursos
Límites de Recursos
Antes de proceder y crear pods con requisitos de recursos especificados, instalemos el Servidor de Métricas.
Clona el repositorio de Github del Servidor de Métricas usando el siguiente comando e instálalo.
git clone https://github.com/kodekloudhub/kubernetes-metrics-server.gitcd kubernetes-metrics-server/Crea el Servidor de Métricas usando los archivos de objeto.
kubectl create -f .
Espera un tiempo para que el Servidor de Métricas se inicie. Después de un tiempo, puedes ejecutar el siguiente comando para monitorear los nodos del clúster.
kubectl top nodeAhora, crea un archivo de definición de pod con el siguiente contenido que contiene la solicitud y el límite de memoria.
vim my-pod-with-memory.ymlapiVersion: v1
kind: Pod
metadata:
name: my-pod-memory-demo
spec:
containers:
- name: my-container-memory-demo
image: polinux/stress
resources:
limits:
memory: "50Mi"
requests:
memory: "20Mi"
command: ["stress"]
args: ["--vm", "1", "--vm-bytes", "30M", "--vm-hang", "1"]
Puedes encontrar la propiedad “resources” en la que hemos especificado el límite de memoria como 50Mi y la solicitud de memoria como 20Mi.
Verifica los pods existentes con el espacio de nombres predeterminado en el clúster.
kubectl get pods #Obtener pods del espacio de nombres predeterminadoCrea un pod usando la definición de pod creada en el paso anterior.
kubectl create -f my-pod-with-memory.yml #Crear un podkubectl get pods
Ahora, si obtienes detalles del Pod, puedes ver que el Pod está solicitando 20Mi de memoria y tiene un límite de 50Mi de memoria.
kubectl get podskubectl describe pod my-pod-memory-demo #Describir el pod
El uso del Pod se puede verificar usando el siguiente comando.
kubectl top pods #Verificar el consumo de recursos por el pod
Ahora, crea una definición de pod con solicitud y límite de CPU.
vim my-pod-with-cpu.ymlapiVersion: v1
kind: Pod
metadata:
name: my-pod-cpu-demo
spec:
containers:
- name: my-container-cpu-demo image: vish/stress
resources:
limits: cpu: "1"
requests:
cpu: "0.5"
args:
- -cpus
- "2"En el archivo anterior, puedes ver que la definición tiene una propiedad “resource” con solicitud de CPU como 0.5 y límite como 1. También ten en cuenta que estamos pasando 2 CPUs como nuestro requisito, que es más que el límite.
Ahora, vamos a crear un pod con solicitud y límite de CPU usando el siguiente comando.
kubectl apply -f my-pod-with-cpu.yml #Crear un podkubectl get pods
Obtén detalles del pod que creamos.
kubectl get podskubectl describe pod my-pod-cpu-demo
Puedes ver que el Pod ha solicitado .5 o 500m de CPU con un límite de 1 CPU.
Para verificar el uso de CPU, usa el siguiente comando.
kubectl top pod #Verificar el consumo de recursos por el pod
En la captura de pantalla anterior, puedes ver que incluso después de pasar 2 CPUs en la definición del pod como argumento, no puede consumir más que el límite, es decir, 1 CPU. Aquí el pod “my-pod-cpu-demo” podría consumir 999m de CPU, que es equivalente a 1 CPU y no pudo aumentar su consumo.
Conclusión
En este artículo, vimos los pasos para habilitar el monitoreo en el clúster usando el Servidor de Métricas. Vimos cómo un pod puede solicitar CPU y memoria y consumir recursos no más allá del límite especificado.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.
