- Erste Schritte
- Netzwerkanforderungen
- Anforderungen und Installation für einen einzelnen Knoten
- Anforderungen und Installation für mehrere Knoten
- Nach der Installation
- Zugriff auf AI Center
- Bereitstellen eines AI Center-Mandanten
- Aktualisieren von Orchestrator- und Identity Server-Zertifikaten
- Ändern der PVC-Größe
- Hinzufügen eines neuen Knotens zum Cluster
- Offlineinstallation von ML-Paketen
- Konfigurieren des Clusters
- Konfigurieren des FQDN nach der Installation
- Sichern und Wiederherstellen des Clusters
- Verwendung des Überwachungs-Stacks
- Einrichten einer Kerberos-Authentifizierung
- Bereitstellen einer GPU
- Verwenden der Konfigurationsdatei
- Knotenplanung
- Knotenplanung verwalten
- Migration und Upgrade
- Grundlegende Anleitung zur Fehlerbehebung
Überblick
Die Knotenplanung gilt nur für Agentknoten und sollte nicht auf Serverknoten angewendet werden.
Die Knotenplanung ist besonders hilfreich, um die Hardware besser zu handhaben und sicherzustellen, dass ML-Replikate (Pods), Fähigkeiten oder Pipelines. Sie sollten sie hauptsächlich in zwei Situationen verwenden:
-
Wenn Sie einen GPU-Knoten haben, um sicherzustellen, dass nur Workloads, die GPU erfordern, auf diesem Knoten geplant werden
-
Um Ihre ML-Workloads besser zu isolieren, damit sie andere Anwendungen nicht stören.
Standardmäßig werden alle Knoten mit den erforderlichen Ressourcen vom Kubernetes-Scheduler als gleich betrachtet.
There are two methods in which you can direct the scheduling of ML replicas (pods), skills, or pipelines to specific nodes, and both are supported in UiPath AI Center:
- Zuweisen von Pods zu Knoten mithilfe der Knotenaffinität: Dies ist nützlich, wenn ML-Pods mit anderen Pods auf einem Knoten zusammengeführt werden. Auf einen Knoten können mehrere Beschriftungen angewendet werden.
- Mängel und Toleranzen: Für einen dedizierten Knoten vorgesehen, der entweder alle Pods abstößt (
NoSchedule) oder eine niedrige Planungspräferenz (PreferNoSchedule) für Pods auferlegt, die nicht den Planungskriterien entsprechen. Obwohl mehrere Taints auf einen oder mehrere Knoten angewendet werden können, unterstützen Knoten-Taints nur die boolesche Logik „AND“.
Die Knotenaffinität ist eine Eigenschaft von Pods, die sie entweder als Präferenz oder als Anforderung zu einer Reihe von Knoten anzieht. Taints hingegen ermöglichen es einem Knoten, eine Reihe von Pods abzustoßen.
Die erste Methode erstellt eine Affinität zwischen Replikaten und Knoten unter Verwendung von Knotenbezeichnungen, während die zweite Methode Anti-Affinität anwendet, indem sie die Knoten tangiert.
Die PodSpec -Vorlagen der ML-Replikate unterstützen beide Methoden und werden basierend auf der GPU- oder Nicht-GPU-Auswahl bei der Bereitstellung angepasst.
Knotenaffinität
Wenn ein Agent-Knoten hinzugefügt wurde, um den Ressourcenpool zu erweitern, und Sie die Planung von ML-Pods darauf beeinflussen möchten, können Sie die Knotenaffinität anwenden. Dazu fügen Sie dem Knoten mit dem folgenden Befehl eine Bezeichnung hinzu:
- Für CPU:
kubectl label node <node_name> node.type=aic.ml.cpu - Für GPU:
kubectl label node <node_name> node.type=aic.ml.gpu
Die Knotenaffinität stellt nicht sicher, dass der Knoten für die Bereitstellung von ML-Workloads bestimmt ist, und verhindert nicht, dass andere Workload-Pods auf demselben Knoten geplant werden, auf den die Bezeichnungen angewendet werden.
Flecken
Um einen Knoten zu dedizieren, müssen Sie Taints oder eine Kombination aus Knotenaffinität und Taints verwenden. Um einen Agent-Knoten für die Bereitstellung von ML-GPU- oder CPU-Pods zuzuweisen, können Sie die folgenden Markierungen auf die Knoten anwenden:
- Für CPU:
kubectl taint node <node_name> aic.ml/cpu=present:NoSchedule - Für GPU:
kubectl taint node <node_name> nvidia.com/gpu=present:NoSchedule
Kombinieren von Knotenaffinität und Taints
Um einen Agent-Knoten für die Bereitstellung von ML-GPU-Pods zuzuweisen und die Planung für ML-CPU-Pods für dieselben Knoten zu beeinflussen, können Sie eine Kombination aus Knotenaffinität und Taints verwenden:
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