- 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
Guia do usuário do AI Center
Node scheduling is only applicable for agent nodes and should not be applied to server nodes.
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ó
- Isolar melhor suas cargas de trabalho de ML, para que não perturbem outros aplicativos. Por padrão, todos os nós que têm 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.
Os modelos 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.
Afinidade de nós
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.
Máculas
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
Combinação de marcações e afinidade de nós
Para dedicar um nó de agente para atender pods de GPU de ML e influenciar o agendamento de pods de CPU de ML para os mesmos nós, você pode usar uma combinação de afinidade e taints de nó:
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