- Notas de Versão
- Antes de começar
- Introdução
- Instalação do AI Center
- Migração e atualização
- Projetos
- Conjuntos de dados
- Rotulagem de Dados
- Pacotes de ML
- Pacotes para uso imediato
- Pipelines
- Habilidades de ML
- Logs de ML
- Document UnderstandingTM no AI Center
- API do AI Center
- Como fazer
- Gerenciamento do agendamento de nós
- Licenciamento
- Guia básico de solução de problemas
Gerenciamento do agendamento de nós
O agendamento de nós é especialmente útil para lidar melhor com o hardware e garantir que as réplicas de ML (pods), habilidades ou pipelines. Você deve usá-los principalmente em duas situações:
- Quando você tiver um nó de GPU, certifique-se de que apenas a carga de trabalho que requer GPU seja agendada nesse nó
- Para isolar melhor suas cargas de trabalho de ML para que não perturbem outros aplicativos.
Por padrão, todos os nós com os recursos necessários são considerados iguais pelo agendador do kubernetes.
Existem dois métodos para direcionar o agendamento de réplicas de ML (pods), habilidades ou pipelines para nós específicos, e ambos são compatíveis com o UiPath® AI Center:
- Atribuir pods a nós usando afinidade de nó: isso é útil ao colocar pods de ML com outros pods em um nó. Vários rótulos podem ser aplicados a um nó.
- Taints e tolerâncias: destinados a um nó dedicado, repelindo todos os pods (
NoSchedule
) ou impondo uma baixa preferência de agendamento (PreferNoSchedule
) para pods que não correspondem aos critérios de agendamento. Embora vários taints possam ser aplicados a um(s) nó(s), os taints de nó suportam apenas a lógica booleana “AND”.
Node affinity é uma propriedade dos Pods que os atrai para um conjunto de nós, seja como uma preferência ou um requisito. As manchas, por outro lado, permitem que um nó repela um conjunto de pods.
O primeiro método cria uma afinidade entre réplicas e nós usando rótulos de nós, enquanto o segundo método aplica antiafinidade contaminando os nós.
PodSpec
das réplicas de ML são projetados para oferecer suporte a ambos os métodos e são personalizados com base na seleção de GPU ou não GPU na implantação.
No caso em que um nó de agente foi adicionado para expandir o pool de recursos e você deseja influenciar o agendamento de pods de ML nele, pode aplicar afinidade de nó. Faça isso adicionando um rótulo ao nó usando o seguinte comando:
- Para CPU:
kubectl label node <node_name> node.type=aic.ml.cpu
- Para a GPU:
kubectl label node <node_name> node.type=aic.ml.gpu
A afinidade do nó não garante que o nó seja dedicado a atender cargas de trabalho de ML e não impede que outros pods de carga de trabalho sejam agendados para o mesmo nó em que os rótulos são aplicados.
Para dedicar um nó, você precisa usar taints ou uma combinação de afinidade de nó e taints. Para dedicar um nó de agente para servir pods de GPU ou CPU de ML, você pode aplicar os seguintes taints aos nós:
- Para CPU:
kubectl taint node <node_name> aic.ml/cpu=present:NoSchedule
- Para a GPU:
kubectl taint node <node_name> nvidia.com/gpu=present:NoSchedule
kubectl taint node <node_name> nvidia.com/gpu=present:PreferNoSchedule
kubectl label node <node_name> node.type=aic.ml.cpu
kubectl taint node <node_name> nvidia.com/gpu=present:PreferNoSchedule
kubectl label node <node_name> node.type=aic.ml.cpu