O Kubernetes usa rótulos e taints para gerenciar e agendar recursos em clusters. Para mais informações sobre conceitos e notas de uso de rótulos, consulte Labels and Selectors. Para entender o funcionamento de taints e tolerâncias, veja Taints and Tolerations na documentação do Kubernetes.
Nós com hardware especializado, como GPUs, têm alto custo operacional. Para impedir que cargas de trabalho gerais ocupem esses nós e reservá-los para pods que realmente precisam do hardware, aplique taints aos nós. Um taint instrui o agendador do Kubernetes a evitar ou remover pods sem uma tolerância correspondente.
O ACK permite gerenciar 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. Assim, apenas pods com a tolerância adequada serão agendados nesses nós.
Agendamento por hardware específico: garanta que pods dependentes de GPUs ou outros hardwares especializados sejam alocados exclusivamente em nós com tais recursos.
Remoção de pods: adicione um taint
NoExecutepara drenar os pods de um nó. O sistema remove automaticamente os pods sem tolerância correspondente. Para manter um pod no nó, adicione a ele uma tolerância compatível com o taint NoExecute.
Efeitos dos taints
Cada taint tem um efeito que determina como o agendador trata os pods sem tolerância correspondente:
|
Efeito |
Comportamento para novos pods |
Comportamento para pods em execução |
|
|
Não agendado no nó |
Não removido |
|
|
Não agendado no nó |
Removido (se não houver tolerância correspondente) |
|
|
O agendador tenta evitar o nó; trata-se de uma preferência flexível |
Não removido |
Pré-requisitos
Antes de começar, verifique se você tem:
Acesso ao ACK console
Permissões suficientes para gerenciar rótulos e taints de nós
Gerencie rótulos de nós
Rótulos identificam e classificam nós. Use-os como seletores para direcionar operações ou agendamentos a nós específicos.
Adicionar um rótulo
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no 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 e confirme.
Após a adição, o rótulo 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 e exibir apenas os nós que o possuem.
Para excluir um rótulo, clique no ícone
ao lado dele.
Alguns rótulos nativos do Kubernetes não podem ser excluídos. Se você remover um deles, o sistema o readicionará automaticamente 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 no 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 e confirme.
|
Parâmetro |
Descrição |
|
Name |
1–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 taints, consulte Taints and Tolerations concepts na documentação do Kubernetes.
Verifique o taint
Após adicionar o taint, confirme sua aplicação:
Na página Nodes, localize o nó desejado na lista.
Verifique a coluna Taints: o novo taint deve constar nela.
Clique no taint para filtrar a lista e confirmar que apenas os nós com esse taint aparecem.
Remover um taint
Na coluna Taints, clique no ícone
ao lado do taint que deseja remover.
Próximos passos
Para configurar rótulos e taints no nível do pool de nós (aplicados a todos os nós de um pool), consulte Criar e gerenciar um pool de nós.
Para agendar pods em nós específicos usando rótulos ou o campo
nodeSelector, consulte Agendar pods em nós específicos.