Taints | Kubernetes
- Taints | Kubernetes
O que são Taints em Kubernetes?
Taints em Kubernetes são usados para restringir quais pods podem ser agendados em determinados nós (nodes). Eles "marcam" um nó com uma característica específica que diz ao sistema agendador do Kubernetes para não permitir pods nesse nó, a menos que esses pods tenham uma toleration correspondente.
Uso de Taints
Os Taints permitem que você reserve nós para pods específicos, ou impeça que certos tipos de pods sejam executados em determinados nós.
Sintaxe do Taint
Para adicionar um Taint em um nó:
kubectl taint nodes <nome-do-node> <key>=<value>:<effect>
<key>: Chave que identifica o Taint.<value>: Valor opcional associado ao Taint.<effect>: Um dos seguintes efeitos:NoSchedule: Não permite que novos pods sejam agendados no nó, a menos que eles tenham uma toleration correspondente.PreferNoSchedule: Evita que novos pods sejam agendados, mas não é garantido.NoExecute: Remove pods já existentes no nó que não têm toleration correspondente.
Exemplos de Taints
-
Taint que impede novos pods no nó:
kubectl taint nodes node1 dedicated=example:NoSchedule- Nenhum pod será agendado no
node1a menos que tenha uma toleration paradedicated=example.
- Nenhum pod será agendado no
-
Removendo um Taint:
kubectl taint nodes node1 dedicated-- Remove o Taint
dedicateddo nónode1.
- Remove o Taint
Tolerations
Tolerations permitem que pods ignorem os Taints em um nó.
Exemplo de toleration em um YAML de pod:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
tolerations:
- key: "dedicated"
operator: "Equal"
value: "example"
effect: "NoSchedule"
key: Chave do Taint.value: Valor do Taint.operator: Pode serEqualouExists.effect: Efeito correspondente (NoSchedule,PreferNoSchedule,NoExecute).
Cenários de Uso
-
Reservar nós para pods críticos:
- Adicione um Taint aos nós e configure tolerations em pods importantes para que somente eles possam ser agendados nesses nós.
-
Evitar agendamento de workloads em nós com problemas:
- Use Taints para restringir temporariamente o uso de nós com baixa capacidade ou manutenção.
-
Separação de ambientes:
- Marcar nós com Taints para produção (
env=production) e tolerations para pods apenas de produção.
- Marcar nós com Taints para produção (
Se precisar de um exemplo mais específico ou quiser testar, me avise! 🚀