0Pricing
DevOps Bootcamp · Lección

Solicitudes y límites de recursos

Defina solicitudes y límites de CPU y memoria para los Pods a fin de garantizar una asignación eficiente de recursos y evitar su agotamiento.

Solicitudes y límites de recursos es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.

Necesidades de recursos en Kubernetes

Al igual que cualquier aplicación, sus Pods necesitan recursos para ejecutarse. Kubernetes ayuda a gestionar estos recursos de forma eficiente mediante las solicitudes de recursos y los límites de recursos.

Estas configuraciones indican a Kubernetes cuánta CPU y memoria necesitan sus Pods y cuánto pueden utilizar, lo que garantiza una distribución justa de los recursos.

Solicitudes de CPU: garantizar la CPU

Una solicitud de CPU indica a Kubernetes la cantidad mínima de CPU que su Pod necesita para funcionar correctamente. ¡Es una garantía!

  • Kubernetes utiliza las solicitudes para programar los Pods en nodos con suficientes recursos disponibles.
  • Si un nodo no tiene suficiente CPU para satisfacer la solicitud, el Pod no se programará en él.
  • Esto ayuda a evitar que las aplicaciones críticas se queden sin recursos.

Unidades de CPU y ejemplo de solicitud

La CPU se mide en «cores» o «millicores» (m). 1000m equivale a 1 core de CPU. Por tanto, 500m equivale a medio core.

Así se solicitan 0,5 cores de CPU en la definición de un Pod:

apiVersion: v1
kind: Pod
metadata:
  name: cpu-request-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      requests:
        cpu: "500m"

Límites de CPU: evitar el uso excesivo

Un límite de CPU establece la cantidad máxima de CPU que puede utilizar un Pod. Es un tope.

  • Si un Pod intenta utilizar más CPU que su límite, Kubernetes lo throttle.
  • Esto significa que el uso de CPU del Pod se restringirá, lo que evita que acapare recursos de otros Pods del mismo nodo.

El límite de CPU en acción

Este es un ejemplo de configuración de un límite de CPU. Si este Pod intenta utilizar más de 1 core de CPU, se le aplicará throttle, lo que significa que su rendimiento se verá limitado.

apiVersion: v1
kind: Pod
metadata:
  name: cpu-limit-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      limits:
        cpu: "1"

Solicitudes de memoria: garantizar la RAM

Al igual que la CPU, una solicitud de memoria especifica la cantidad mínima de RAM que necesita su Pod para funcionar.

  • Kubernetes utiliza este valor para encontrar un nodo con suficiente memoria libre para su Pod.
  • Si un nodo se queda sin memoria, los Pods sin solicitudes suelen ser los primeros en terminarse (evicted) para liberar espacio.

Unidades de memoria y ejemplo de solicitud

La memoria se mide en bytes. Las unidades habituales son Mi (mebibytes) y Gi (gibibytes).

100Mi equivale a 100 mebibytes. Así se solicitan 256 MiB de memoria:

apiVersion: v1
kind: Pod
metadata:
  name: mem-request-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      requests:
        memory: "256Mi"

Límites de memoria: evitar OOM

Un límite de memoria define la cantidad máxima de memoria que puede consumir un Pod.

  • Si un Pod supera su límite de memoria, el sistema operativo lo termina inmediatamente con un error «Out Of Memory» (OOM). Esto suele aparecer como «OOMKilled».
  • Así se evita que un solo Pod descontrolado consuma toda la memoria del nodo y provoque la caída del nodo completo.

Límite de memoria en acción

Este Pod tiene un límite de memoria de 512 MiB. Si intenta utilizar más, terminará (OOMKilled) para proteger las demás cargas de trabajo y el nodo.

apiVersion: v1
kind: Pod
metadata:
  name: mem-limit-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      limits:
        memory: "512Mi"

Prácticas recomendadas: solicitudes y límites

Es una práctica recomendada definir tanto solicitudes como límites para todos sus Pods. Esto proporciona estabilidad y previsibilidad al clúster.

  • Las solicitudes garantizan que sus Pods obtengan los recursos mínimos necesarios para la planificación.
  • Los límites evitan que otros Pods y el propio nodo sufran falta de recursos.

Este es un ejemplo completo:

apiVersion: v1
kind: Pod
metadata:
  name: full-resource-pod
spec:
  containers:
  - name: my-app
    image: my-registry/my-app:1.0
    resources:
      requests:
        cpu: "200m"
        memory: "128Mi"
      limits:
        cpu: "500m"
        memory: "256Mi"

Comprobación de recursos

Ha definido un Pod con una solicitud de CPU de 200m y un límite de CPU de 1 (es decir, 1000m).

¿Qué ocurre si este Pod intenta utilizar 1.5 núcleos de CPU?

Resumen: gestión de recursos

En esta lección, hemos aprendido sobre las solicitudes de recursos y los límites de recursos en Kubernetes.

  • Las solicitudes (CPU y memoria) garantizan los recursos mínimos para la planificación de los Pods.
  • Los límites (CPU y memoria) restringen el uso máximo para evitar la contención de recursos.
  • Superar los límites de CPU provoca throttling; superar los límites de memoria provoca la terminación (OOMKilled).
  • Defina siempre tanto solicitudes como límites para obtener un rendimiento estable y predecible de las aplicaciones.

Preguntas frecuentes

¿La lección «Solicitudes y límites de recursos» es gratis?

Sí — el texto completo de «Solicitudes y límites de recursos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.

¿Qué aprenderé en «Solicitudes y límites de recursos»?

Defina solicitudes y límites de CPU y memoria para los Pods a fin de garantizar una asignación eficiente de recursos y evitar su agotamiento. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar DevOps Bootcamp?

No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Solicitudes y límites de recursos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?

Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Solicitudes y límites de recursos
  2. Selectores y afinidad de nodos
  3. Taints y tolerations
  4. Prioridad y preempción de Pods
← Volver a DevOps Bootcamp