0Pricing
DevOps Bootcamp · Lección

Prioridad y preempción de Pods

Aprenda cómo PriorityClasses clasifican los Pods y cómo el planificador puede desalojar Pods de menor prioridad para dejar espacio a cargas de trabajo críticas.

Prioridad y preempción de Pods es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 4 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.

No todos los Pods son iguales

Cuando el clúster está lleno, algunas cargas de trabajo son más importantes que otras. La prioridad de los Pods le permite indicar a Kubernetes qué Pods deben tener prioridad en la competencia por los recursos.

¿Qué es una PriorityClass?

Una PriorityClass es un objeto de ámbito de clúster que asocia un nombre con un valor entero. Los números más altos indican una prioridad mayor.

apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: high-priority
value: 1000000
globalDefault: false
description: 'For critical production workloads'

Asignar prioridad a un Pod

Un Pod usa una clase mediante priorityClassName. El planificador lee el valor numérico de la clase referenciada.

apiVersion: v1
kind: Pod
metadata:
  name: critical-app
spec:
  priorityClassName: high-priority
  containers:
  - name: app
    image: myapp:1.0

Cómo afecta la prioridad a la programación

Cuando hay varios Pods pendientes, el planificador intenta colocar primero los Pods de mayor prioridad. La prioridad influye en el orden en que se programan los Pods.

¿Qué es la preempción?

Si un Pod de alta prioridad no se puede programar porque el clúster está lleno, el planificador puede desalojar (expulsar) Pods de menor prioridad para liberar espacio.

Los Pods desalojados vuelven al estado Pending y pueden programarse de nuevo en otro lugar.

La preempción en acción

Imagine que un nodo está lleno de Pods con prioridad 100 y llega un Pod con prioridad 1000000. El planificador puede eliminar suficientes Pods de baja prioridad para hacer sitio al crítico.

kubectl get events --field-selector reason=Preempted
# Pod default/batch-job was preempted by critical-app

Deshabilitar la preempción

Una PriorityClass puede renunciar a desalojar otros Pods mediante preemptionPolicy: Never. Estos Pods siguen programándose según el orden de prioridad, pero no desalojan a ninguno.

apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: high-no-preempt
value: 1000000
preemptionPolicy: Never

El valor predeterminado global

Establecer globalDefault: true en una PriorityClass aplica su valor a cualquier Pod que no especifique una. Solo una clase puede ser el valor predeterminado global.

Clases de sistema integradas

Kubernetes incluye clases reservadas como system-cluster-critical y system-node-critical para componentes esenciales. No las reutilice para sus aplicaciones.

kubectl get priorityclass
# system-node-critical     2000001000
# system-cluster-critical  2000000000

Prácticas recomendadas

  • Defina un número reducido de niveles claros (por ejemplo, crítico, normal y por lotes)
  • Reserve la preempción para cargas de trabajo realmente importantes
  • Combínela con solicitudes de recursos para que las decisiones de programación sean precisas
  • Evite asignar una prioridad alta a todo, ya que eso anula el propósito

Prioridad frente a QoS

La prioridad controla la programación y la preempción. Las clases de calidad de servicio (Quality-of-Service, a partir de las solicitudes y los límites) controlan el desalojo bajo presión del nodo. Son mecanismos relacionados, pero distintos.

Comprobación rápida

Compruebe cuánto entiende sobre la preempción.

Resumen

Ha aprendido que una PriorityClass clasifica los Pods mediante un valor entero, lo que influye en el orden de programación. La preempción permite que los Pods críticos desalojen a los de menor prioridad cuando el clúster está lleno. Use unos pocos niveles claros y combine la prioridad con solicitudes de recursos precisas.

Preguntas frecuentes

¿La lección «Prioridad y preempción de Pods» es gratis?

Sí — el texto completo de «Prioridad y preempción de Pods» 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 «Prioridad y preempción de Pods»?

Aprenda cómo PriorityClasses clasifican los Pods y cómo el planificador puede desalojar Pods de menor prioridad para dejar espacio a cargas de trabajo críticas. 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 4 de 4.

¿Cuánto tiempo toma la lección «Prioridad y preempción de Pods»?

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