Überprüfen Sie, ob die GPU-Workerknoten (GPU = Graphics Processing Unit; Grafikprozessor) für die Bereitstellung bereit sind.
Führen Sie die folgenden Schritte auf allen GPU-Knoten aus:
Richten Sie ein Repository ein.
Führen Sie für Red Hat Enterprise Linux die folgenden Befehle aus:
a. Richten Sie ein RHEL-Repository ein. Verwenden Sie die Berechtigungsnachweise des Subskriptionsmanagers für die Registrierung.
subscription-manager register --username <username> --password <password>
b. Richten Sie ein EPEL-Repository (Extra Packages for Enterprise Linux) ein.
yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Bei Ubuntu ist das Repository standardmäßig verfügbar.
Installieren Sie den NVIDIA-Treiber.
a. Richten Sie das lokale Repository des NVIDIA-Treibers ein.
Laden Sie zunächst die richtige Version des Treiberpakets für die GPU von NVIDIA Driver Downloads herunter. Führen Sie anschließend den folgenden Befehl aus, um das Paket zu installieren:
Führen Sie für RHEL den folgenden Befehl aus:
yum localinstall <package-name>.rpm -y
Führen Sie für Ubuntu den folgenden Befehl aus:
dpkg -i <package-name>.deb
b. Installieren Sie den Treiber.
Führen Sie für RHEL den folgenden Befehl aus:
yum install nvidia-kmod nvidia-driver-NVML nvidia-persistenced -y
Führen Sie bei Ubuntu den folgenden Befehl aus:
apt install nvidia-driver-<version>
Entfernen Sie vorhandene udev-Regeln für Hot-Plug-fähigen Speicher.
Setzen Sie die 'hotadd'-Speicherregel der 'udev'-Regeln auf Kommentar.
# Memory hotadd request
#SUBSYSTEM!="memory", ACTION!="add", GOTO="memory_hotplug_end"
#PROGRAM="/bin/uname -p", RESULT=="s390*", GOTO="memory_hotplug_end"
Die Datei mit den udev-Regeln ist an den folgenden Positionen verfügbar:
/lib/udev/rules.d/40-redhat.rules./lib/udev/rules.d/40-vm-hotadd.rules.Aktivieren Sie den Service nvidia-persistenced.
systemctl enable nvidia-persistenced
Starten Sie den Knoten erneut.
Validieren Sie die Konfiguration, indem Sie den folgenden Befehl ausführen:
nvidia-smi
Sie können den GPU-Treiber vor oder nach der Installation von IBM® Cloud Private aktualisieren.
Wichtig: Die NVIDIA-Containerlaufzeit wird von der IBM Cloud Private-Umgebung nicht verwendet. Die NVIDIA-Containerlaufzeit und ihre Abhängigkeiten dürfen auf IBM Cloud Private-GPU-Knoten nicht installiert werden.
Aktualisieren Sie die GPU-Treiberversion. Weitere Informationen hierzu finden Sie unter http://www.nvidia.com/Download/index.aspx .
Nachdem Sie die GPU-Treiberversion aktualisiert haben, müssen Sie 'kubelet' erneut starten, damit Kubernetes die Änderungen am GPU-Treiber übernehmen kann.
systemctl restart kubelet
Sie müssen die folgenden Prüfschritte auf dem Workerknoten ausführen, auf dem der Nvidia-GPU-Treiber installiert ist.
Überprüfen Sie, ob der Nvidia-Grafikprozessor betriebsbereit ist.
nvidia-smi
Die Ausgabe wird wie folgt angezeigt:
Thu Nov 9 16:44:28 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.66 Driver Version: 375.66 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla K80 Off | 0000:08:00.0 Off | 0 |
| N/A 47C P8 26W / 149W | 0MiB / 11439MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Tesla K80 Off | 0000:09:00.0 Off | 0 |
| N/A 36C P8 31W / 149W | 0MiB / 11439MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
Wenn eine Fehlernachricht zurückgegeben wird, installieren Sie den GPU-Treiber erneut auf dem Knoten. Weitere Informationen hierzu finden Sie unter http://www.nvidia.com/Download/index.aspx .
Stellen Sie sicher, dass die Ordner für die GPU-Treiber verfügbar sind.
/var/lib/kubelet/device-plugins/nvidia-driver vorhanden ist./var/lib/kubelet/device-plugins/nvidia-driver mindestens zwei Ordner vorhanden sind. Die Ordnernamen lauten init und <driver-version-number>. Falls mindestens ein Ordner nicht vorhanden ist, müssen Sie sicherstellen, dass die GPU-Treiber ordnungsgemäß installiert wurden. Führen Sie anschließend die folgenden Befehle aus:
Löschen Sie den Ordner mit den Treiberdateien.
rm -rf /var/lib/kubelet/device-plugins/nvidia-driver
Starten Sie den Service 'kubelet' erneut.
systemctl restart kubelet
Überprüfen Sie, ob die GPU-Ressourcen für die Verwendung durch Kubernetes verfügbar sind.
kubectl describe nodes
In der Befehlsausgabe muss der Knoten mit GPU folgende Einträge aufweisen:
Capacity:
[snip]
nvidia.com/gpu: 2
[snip]
Allocatable:
[snip]
nvidia.com/gpu: 2
Wenn für den Knoten mit den NVIDIA-GPUs keine nvidia.com/gpu-Einträge vorhanden sind, ist der Grund hierfür wahrscheinlich die falsche Installation des GPU-Treibers. Sie müssen den GPU-Treiber möglicherweise erneut installieren.
Sie können jetzt Anwendungen bereitstellen, die GPU-Ressourcen auf Ihrem Workerknoten verwenden. Weitere Informationen hierzu finden Sie im Abschnitt zum Erstellen einer Bereitstellung mit angeschlossenen GPU-Ressourcen.