Kubernetes bietet Unterstützung für die Verwaltung von Grafikprozessoren (GPUs) auf verschiedenen Knoten in einem Cluster. Dazu werden Device-Plug-ins eingesetzt.
In ArcGIS Enterprise on Kubernetes können Sie ein Device-Plug-in implementieren, um GPU-fähige Knoten in einem Cluster zu aktivieren und so GIS-Workflows zu optimieren, z. B. für Raster-Analysen und Deep Learning. Standardmäßig sind Funktionalitäten wie die Raster-Analyse so konfiguriert, dass sie im CPU-Modus ausgeführt werden. Sie bieten aber auch die flexible Möglichkeit zur Ausführung im GPU-Modus, sofern diese Ressourcen verfügbar sind. Überlegen Sie, ob die Verwendung von GPU-fähigen Knoten für Ihre Workloads sinnvoll ist, da dieser Knotentyp in der Regel mit höheren Kosten verbunden ist.
Stellen Sie sicher, dass Sie über ausreichende GPU-Ressourcen für alle Ihre GPU-fähigen Workloads verfügen. Ein einzelner Pod für Raster-Analysen verbraucht beispielsweise 1 GPU. Um 10 Replikate dieser Pods zu unterstützen, benötigen Sie 10 GPUs, die über Ihre GPU-fähigen Knoten verfügbar sind.
Aktivieren der GPU
Führen Sie die folgenden Schritte aus, um die Verwendung der GPU für Workloads zu aktivieren:
- Vergewissern Sie sich, dass auf Ihrer Instanz das NVIDIA-Device-Plug-in für Kubernetes installiert ist.
Das NVIDIA-Device-Plug-in für Kubernetes ist ein DaemonSet, worüber Sie die Anzahl der GPUs auf jedem Knoten eines Clusters anzeigen, GPU-fähige Container ausführen und den Zustand der GPUs verfolgen können. Viele Cloud-Umgebungen verfügen über vorkonfigurierte GPU-Knoten. Wenn das Device-Plug-in nicht installiert ist, finden Sie weitere Informationen und Installationsschritte in der Dokumentation zum NVIDIA-Device-Plug-in für Kubernetes. Bei einer lokalen Bereitstellung muss der Administrator auf jedem Knoten in einem Cluster die GPU aktivieren.
Hinweis:
Derzeit wird ArcGIS Enterprise on Kubernetes nur mit NVIDIA-GPUs unterstützt.
- Erstellen Sie optional eine benutzerdefinierte Beschriftung für die GPU-Knoten.
Es wird empfohlen, GPU-Knoten zu beschriften, damit Workloads mithilfe von Pod-Platzierungsregeln für diese Knoten geplant werden können. Verwenden Sie den folgenden Befehl, um die einzelnen Knoten zu beschriften:
kubectl label nodes <your-node-name> <your-key>=<your-value> - Konfigurieren Sie die Services für die GPU-Verwendung.
Wenn Sie die GPU für Notebook-Services aktivieren, finden Sie unter Anzeigen und Bearbeiten von Runtimes Informationen zum Festlegen von GPU-Einheiten pro Knoten. Informationen zur Aktivierung der GPU für Raster-Analysen finden Sie im Abschnitt Aktivieren von GPU-Ressourcen für Raster-Analysen.
- Verwenden Sie ggf. Taints, um sicherzustellen, dass nur Workloads, die eine GPU erfordern, für GPU-fähige Knoten geplant werden.
Wenden Sie Toleranzen auf alle Workloads an, die auf GPU-fähigen Knoten ausgeführt werden sollen, bevor die Knoten mit Taints gekennzeichnet werden. Verwenden Sie den folgenden Befehl, um einen GPU-Knoten mit einem Taint zu kennzeichnen:
kubectl taint nodes <your-node-name> nvidia.com/gpu=Exists:NoExecute