Sie können GPU-Ressourcen (Graphics Processing Unit) für Ihre Container aktivieren und verwalten. Möglicherweise bevorzugen Sie es, Notebooks für künstliche Intelligenz (KI) und maschinelles Lernen (ML) in einer GPU-Umgebung auszuführen. Wenn Sie GPU-Containerarbeitslasten ausführen möchten, benötigen Sie einen Kubernetes-Cluster, der GPU-Geräte unterstützt. Die GPU-Unterstützung ist standardmäßig für Kubernetes-Cluster aktiviert, für die GPU-Maschinen bereitgestellt wurden.
Hinweise
Damit Sie GPUs für Ihre Container bereitstellen können, benötigen Sie Folgendes:
Ein Kubernetes-Cluster mit einer GPU-Maschinenklasse. Im Abschnitt Unterstützte GPU-Karten finden Sie Optionen für die Konfiguration Ihrer Clustermaschinen.
Die Rolle „User Cluster Node Viewer“ (
user-cluster-node-viewer
) zum Prüfen von GPUs und die Rolle „Namespace Admin“ (namespace-admin
) zum Bereitstellen von GPU-Arbeitslasten im Namespace Ihres Projekts.Der kubeconfig-Pfad für den zonalen Management-API-Server, auf dem Ihr Kubernetes-Cluster gehostet wird. Melden Sie sich an und generieren Sie die kubeconfig-Datei, falls Sie noch keine haben.
Der kubeconfig-Pfad für den Infrastrukturcluster der Organisation in der Zone, in der Ihre GPUs gehostet werden sollen. Melden Sie sich an und generieren Sie die kubeconfig-Datei, falls Sie noch keine haben.
Der Name des Kubernetes-Clusters. Wenn Sie diese Informationen nicht haben, fragen Sie Ihren Plattformadministrator.
Der kubeconfig-Pfad des Kubernetes-Clusters. Melden Sie sich an und generieren Sie die kubeconfig-Datei, falls Sie noch keine haben.
Container für die Nutzung von GPU-Ressourcen konfigurieren
Führen Sie die folgenden Schritte aus, um diese GPUs in einem Container zu verwenden:
Prüfen Sie, ob Ihr Kubernetes-Cluster Knotenpools mit GPU-Unterstützung hat:
kubectl describe nodepoolclaims -n KUBERNETES_CLUSTER_NAME \ --kubeconfig ORG_INFRASTRUCTURE_CLUSTER
Die relevante Ausgabe sieht etwa so aus:
Spec: Machine Class Name: a2-ultragpu-1g-gdc Node Count: 2
Eine vollständige Liste der unterstützten GPU-Maschinentypen und MIG-Profile (Multi-Instance GPU) finden Sie unter Maschinentypen für Clusternknoten.
Fügen Sie die Felder
.containers.resources.requests
und.containers.resources.limits
zur Containerspezifikation hinzu. Jeder Ressourcenname ist je nach Maschinenklasse unterschiedlich. Prüfen Sie die Zuweisung Ihrer GPU-Ressourcen, um die Namen Ihrer GPU-Ressourcen zu ermitteln.Die folgende Containerspezifikation fordert beispielsweise drei Partitionen einer GPU von einem
a2-ultragpu-1g-gdc
-Knoten an:... containers: - name: my-container image: "my-image" resources: requests: nvidia.com/mig-1g.10gb-NVIDIA_A100_80GB_PCIE: 3 limits: nvidia.com/mig-1g.10gb-NVIDIA_A100_80GB_PCIE: 3 ...
Für Container sind außerdem zusätzliche Berechtigungen für den Zugriff auf GPUs erforderlich. Fügen Sie für jeden Container, der GPUs anfordert, der Containerspezifikation die folgenden Berechtigungen hinzu:
... securityContext: seLinuxOptions: type: unconfined_t ...
Wenden Sie die Container-Manifestdatei an:
kubectl apply -f CONTAINER_MANIFEST_FILE \ -n NAMESPACE \ --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
GPU-Ressourcenzuordnung prüfen
Verwenden Sie den folgenden Befehl, um die Zuweisung von GPU-Ressourcen zu prüfen:
kubectl describe nodes NODE_NAME
Ersetzen Sie
NODE_NAME
durch den Knoten, der die GPUs verwaltet, die Sie prüfen möchten.Die relevante Ausgabe sieht etwa so aus:
Capacity: nvidia.com/mig-1g.10gb-NVIDIA_A100_80GB_PCIE: 7 Allocatable: nvidia.com/mig-1g.10gb-NVIDIA_A100_80GB_PCIE: 7
Notieren Sie sich die Ressourcennamen für Ihre GPUs. Sie müssen sie angeben, wenn Sie einen Container für die Verwendung von GPU-Ressourcen konfigurieren.