Kubernetes Basics · Aula

Taints e tolerâncias

Impeça que pods sejam agendados em nós específicos usando taints e permita que determinados pods os tolerem.

Aula 3 de 412 etapas

Taints e tolerâncias é uma aula grátis de Kubernetes Basics no CoddyKit. Esta é a aula 3 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.

O que são taints?

Imagine que você tenha nós especiais no seu cluster Kubernetes, talvez com hardware específico, como GPUs, ou reservados para determinadas cargas de trabalho. Você não gostaria que qualquer Pod fosse alocado neles, certo?

É aí que entram os taints! Um taint é uma propriedade aplicada a um nó que impede o agendamento de Pods nele, a menos que esses Pods explicitamente "tolerem" esse taint.

Motivos para usar taints

Os taints são extremamente úteis para gerenciar onde os Pods são executados:

  • Nós dedicados: reserve nós para equipes ou aplicativos específicos.
  • Hardware especial: isole nós com GPUs ou SSDs de alto desempenho para os Pods que precisam deles.
  • Manutenção: marque um nó para manutenção, impedindo temporariamente o agendamento de novos Pods nele.

Como funcionam os taints

Pense em um taint como uma placa de "proibida a entrada" em um nó. Um Pod só pode ignorar essa placa se tiver uma "permissão" correspondente chamada toleration.

Um taint é composto por uma chave, um valor e um efeito. Por exemplo: key=value:effect.

Entendendo os efeitos dos taints

A parte do "efeito" de um taint informa ao Kubernetes o que fazer com os Pods que não o toleram. Há três efeitos principais:

  • NoSchedule
  • PreferNoSchedule
  • NoExecute

Vamos analisar cada um.

Efeito do taint: NoSchedule

O efeito NoSchedule é o mais rígido. Se um nó tiver um taint com NoSchedule, nenhum Pod será agendado nesse nó, a menos que tenha uma toleration correspondente.

Os Pods existentes que já estejam em execução no nó NÃO são afetados por um novo taint NoSchedule.

Efeito do taint: PreferNoSchedule

PreferNoSchedule é uma versão "flexível" de NoSchedule. O Kubernetes fará o possível para evitar agendar Pods em um nó com taint, mas isso não é um requisito rígido.

Se não houver outros nós adequados, um Pod ainda poderá ser agendado em um nó com o taint PreferNoSchedule, mesmo sem uma toleration.

Efeito do taint: NoExecute

O efeito NoExecute é único porque afeta Pods *já em execução*. Se um nó tiver um taint NoExecute:

  • Pods sem uma toleration correspondente serão *imediatamente expulsos*.
  • Novos Pods sem uma toleration correspondente não poderão ser agendados.

Isso costuma ser usado para esvaziar nós ou lidar com falhas de nós.

Introdução às tolerations

Enquanto os taints são aplicados aos nós, as tolerations são aplicadas aos Pods. A toleration de um Pod permite que ele seja agendado em um nó que tenha um taint correspondente.

Sem uma toleration correspondente, um Pod não pode ser agendado (ou prefere não ser agendado) em um nó com taint.

Tolerations nos manifestos de Pods

Você define as tolerations no manifesto YAML de um Pod, na seção spec. Veja como um Pod tolera um taint com key=value:NoSchedule:

apiVersion: v1
kind: Pod
metadata:
  name: my-tolerated-pod
spec:
  containers:
  - name: nginx
    image: nginx
  tolerations:
  - key: "special-purpose"
    operator: "Equal"
    value: "gpu"
    effect: "NoSchedule"

Como taints e tolerations correspondem

Para que um Pod seja agendado em um nó com taint, sua toleration deve corresponder ao taint do nó. A correspondência envolve:

  • Chave: deve ser a mesma.
  • Valor: deve ser o mesmo se operator: Equal.
  • Efeito: deve ser o mesmo.
  • Operador: pode ser Equal ou Exists (ou seja, qualquer valor para a chave).

Uma toleration especial, key: "" operator: Exists, tolera *qualquer* taint.

Verificação rápida: taints

Um nó tem o taint env=production:NoSchedule. Qual configuração de Pod permitiria que ele fosse agendado nesse nó?

Recapitulação: taints e tolerations

Você aprendeu sobre taints e tolerations!

  • Os taints são aplicados aos nós para repelir Pods.
  • As tolerations são aplicadas aos Pods para permitir que sejam agendados em nós com taints.
  • Os principais efeitos de taint são NoSchedule, PreferNoSchedule e NoExecute.
  • As tolerations devem corresponder à chave, ao valor e ao efeito do taint para que um Pod seja agendado.

Essas ferramentas oferecem controle detalhado sobre a alocação de Pods!

Grátis para começar

Aprenda Kubernetes Basics com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
12
Aulas
48

Perguntas Frequentes

A aula “Taints e tolerâncias” é grátis?

Sim — o texto completo de “Taints e tolerâncias” é 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 “Taints e tolerâncias”?

Impeça que pods sejam agendados em nós específicos usando taints e permita que determinados pods os tolerem. 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 3 de 4.

Quanto tempo leva a aula “Taints e tolerâncias”?

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