0Pricing
Kubernetes Basics · Aula

Prioridade e preempção de Pods

Aprenda como PriorityClasses classificam os Pods e como o agendador pode remover Pods de prioridade menor para abrir espaço para cargas de trabalho críticas.

Prioridade e preempção de Pods é uma aula grátis de Kubernetes Basics no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kubernetes Basics, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kubernetes Basics inclui 4 aulas no total.

Nem todos os Pods são iguais

Quando o cluster está cheio, algumas cargas de trabalho são mais importantes do que outras. A prioridade do Pod permite informar ao Kubernetes quais Pods devem vencer a disputa pelos recursos.

O que é uma PriorityClass

Uma PriorityClass é um objeto válido em todo o cluster que associa um nome a um valor inteiro. Números maiores significam prioridade mais alta.

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

Atribuindo prioridade a um Pod

Um Pod adere a uma classe por meio de priorityClassName. O agendador lê o valor numérico da classe referenciada.

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

Como a prioridade afeta o agendamento

Quando vários Pods estão pendentes, o agendador tenta posicionar primeiro os Pods de maior prioridade. A prioridade influencia a ordem em que os Pods são agendados.

O que é preempção

Se um Pod de alta prioridade não puder ser agendado porque o cluster está cheio, o agendador poderá fazer a preempção (expulsão) de Pods de menor prioridade para liberar espaço.

Os Pods expulsos voltam ao estado Pendente e podem ser reagendados em outro local.

A preempção em ação

Imagine que um nó esteja cheio de Pods com prioridade 100 e que chegue um Pod com prioridade 1000000. O agendador poderá remover Pods de baixa prioridade suficientes para acomodar o Pod crítico.

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

Desativando a preempção

Uma PriorityClass pode optar por não fazer a preempção de outros Pods com preemptionPolicy: Never. Esses Pods continuam sendo agendados pela ordem de prioridade, mas não expulsarão ninguém.

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

O padrão global

Definir globalDefault: true em uma PriorityClass aplica o valor dela a qualquer Pod que não especifique uma classe. Apenas uma classe pode ser o padrão global.

Classes de sistema integradas

O Kubernetes inclui classes reservadas, como system-cluster-critical e system-node-critical, para componentes essenciais. Não as reutilize em seus aplicativos.

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

Práticas recomendadas

  • Defina um pequeno número de níveis claros (por exemplo, crítico, normal e em lote)
  • Reserve a preempção para cargas de trabalho realmente importantes
  • Combine-a com solicitações de recursos para que as decisões de agendamento sejam precisas
  • Evite dar prioridade alta a tudo, pois isso anula o objetivo do recurso

Prioridade versus QoS

A prioridade controla o agendamento e a preempção. As classes de Qualidade de Serviço (definidas por solicitações e limites) controlam a expulsão sob pressão no nó. São mecanismos relacionados, mas distintos.

Verificação rápida

Teste sua compreensão sobre preempção.

Recapitulação

Você aprendeu que uma PriorityClass classifica os Pods por um valor inteiro, influenciando a ordem de agendamento. A preempção permite que Pods críticos expulsem Pods de menor prioridade quando o cluster está cheio. Use alguns níveis claros e combine a prioridade com solicitações precisas de recursos.

Perguntas Frequentes

A aula “Prioridade e preempção de Pods” é grátis?

Sim — o texto completo de “Prioridade e preempção de Pods” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kubernetes Basics, atualize para CoddyKit PRO. O curso de Kubernetes Basics inclui 4 aulas no total.

O que vou aprender em “Prioridade e preempção de Pods”?

Aprenda como PriorityClasses classificam os Pods e como o agendador pode remover Pods de prioridade menor para abrir espaço para cargas de trabalho críticas. Você pratica Kubernetes Basics com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Kubernetes Basics?

Nenhuma experiência prévia é necessária. Kubernetes Basics no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Prioridade e preempção de Pods”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Kubernetes Basics?

Sim. Cada aula de Kubernetes Basics inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Solicitações e limites de recursos
  2. Seletores e afinidade de nós
  3. Taints e tolerâncias
  4. Prioridade e preempção de Pods
← Voltar para Kubernetes Basics