O Kubernetes usa rótulos e taints para gerenciar e agendar recursos em clusters. Para mais informações sobre a introdução e as notas de uso de rótulos, consulte Labels and Selectors. Para entender como taints e tolerations funcionam, consulte Taints and Tolerations na documentação do Kubernetes.
Nós com hardware especializado, como GPUs, têm custo elevado de operação. Para evitar que cargas de trabalho genéricas ocupem esses nós e reservá-los apenas para pods que realmente precisam do hardware, aplique taints nos nós. Um taint instrui o scheduler do Kubernetes a evitar ou remover pods que não possuem uma toleration correspondente.
O ACK permite gerencie taints e rótulos de nós diretamente pelo console.
Casos de uso
Nós dedicados: Reserve um grupo de nós para equipes ou cargas de trabalho específicas aplicando taints, de modo que apenas pods com a toleration correta sejam agendados nesses nós.
Agendamento específico por hardware: Garanta que somente pods que exigem GPUs ou outro hardware especializado sejam alocados nos nós que possuem esse hardware.
Remoção de pods: Adicione um taint
NoExecutepara drenar pods de um nó. Pods sem uma toleration correspondente são removidos do nó. Para manter um pod no nó, adicione ao pod uma toleration que corresponda ao taint NoExecute.
Efeitos de taint
Cada taint possui um efeito que controla como o scheduler trata os pods sem uma toleration correspondente:
|
Effect |
Comportamento para novos pods |
Comportamento para pods em execução |
|
|
Não são agendados no nó |
Não são removidos |
|
|
Não são agendados no nó |
São removidos (se não houver toleration correspondente) |
|
|
O scheduler tenta evitar o nó; trata-se de um requisito flexível |
Não são removidos |
Pré-requisitos
Antes de começar, certifique-se de ter:
Acesso ao ACK console
Permissões suficientes para gerencie rótulos e taints de nós
Gerencie rótulos de nós
Os rótulos identificam e classificam nós. Use-os como seletores para direcionar nós específicos em operações ou no agendamento de pods.
Adicionar um rótulo
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique em o nome do cluster. No painel de navegação à esquerda, escolha Nodes > Nodes.
Clique em Manage Labels and Taints. Na aba Labels, selecione os nós desejados e clique em Add Label.
Na caixa de diálogo Add, defina Name e Value, depois confirme.
Após adicionar o rótulo, ele aparece na coluna Labels da lista de nós.
Trabalhar com rótulos na lista de nós
Clique em um rótulo para filtrar a lista de nós e exibir apenas os nós que possuem esse rótulo.
Clique no ícone
ao lado de um rótulo para excluí-lo.
Alguns rótulos nativos do Kubernetes não podem ser excluídos. Se você excluir um, o sistema o adiciona automaticamente de volta ao nó.
Gerencie taints de nós
Adicionar um taint
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique em o nome do cluster. No painel de navegação à esquerda, escolha Nodes > Nodes.
Clique em Manage Labels and Taints. Na aba Taints, selecione os nós desejados e clique em Add Taint.
Na caixa de diálogo Add, defina Name, Value e Effect, depois confirme.
|
Parâmetro |
Descrição |
|
Name |
De 1 a 63 caracteres; letras, dígitos, hifens ( |
|
Value |
Opcional. Máximo de 63 caracteres; letras, dígitos, hifens ( |
|
Effect |
|
Para a especificação completa do formato de taint, consulte Taints and Tolerations concepts na documentação do Kubernetes.
Verifique o taint
Após adicionar o taint, confirme se ele foi aplicado:
Na página Nodes, localize o nó desejado na lista.
Verifique a coluna Taints — o novo taint deve aparecer ali.
Clique em o taint para filtrar a lista de nós e confirme que apenas os nós com esse taint são exibidos.
Remover um taint
Na coluna Taints, clique no ícone
ao lado do taint que deseja remover.
Próximos passos
Para configure rótulos e taints no nível do node pool (aplicados a todos os nós de um pool), consulte Create and manage a node pool.
Para agendar pods em nós específicos usando rótulos ou o campo
nodeSelector, consulte Schedule pods to specific nodes.