NVIDIA-GPU-Plug-in
Wenn Sie das NVIDIA GPU Plugin Cluster-Add-on aktivieren, können Sie die folgenden Schlüssel/Wert-Paare als Argumente übergeben.
Um sicherzustellen, dass Workloads, die auf NVIDIA-GPU-Worker-Knoten ausgeführt werden, nicht unerwartet unterbrochen werden, empfehlen wir Ihnen, die Version des NVIDIA-GPU-Plug-in-Add-ons für das Deployment auszuwählen, anstatt anzugeben, dass Oracle das Add-on automatisch aktualisieren soll.
| Schlüssel (API und CLI) | Anzeigename des Schlüssels (Konsole) | Beschreibung | Erforderlich/Optional | Standardwert | Beispielwert |
|---|---|---|---|---|---|
affinity |
Affinität |
Eine Gruppe von Affinitätsplanungsregeln. JSON-Format im Klartext oder Base64-codiert. Nicht verwendet von:
Mögliche Äquivalente:
|
Optional | Null | Null |
nodeSelectors |
Knotenselektoren |
Mit Knotenselektoren und Knotenlabels können Sie die Worker-Knoten steuern, auf denen Add-on-Pods ausgeführt werden. Damit ein Pod auf einem Knoten ausgeführt werden kann, muss der Knotenselektor des Pods denselben Schlüssel/Wert wie das Label des Knotens aufweisen. Setzen Sie JSON-Format im Klartext oder Base64-codiert. Nicht verwendet von:
Mögliche Äquivalente:
|
Optional | Null | {"foo":"bar", "foo2": "bar2"}Der Pod wird nur auf Knoten ausgeführt, die das Label |
numOfReplicas |
numOfReplicas | Die Anzahl der Replikate der Add-on-Bereitstellung. Nicht verwendet von:
Mögliche Äquivalente:
|
Erforderlich | 1Erstellt ein Replikat des Add-on-Deployments pro Cluster. |
2Erstellt zwei Replikate des Add-on-Deployments pro Cluster. |
rollingUpdate |
rollingUpdate |
Steuert das gewünschte Verhalten der rollierenden Aktualisierung durch maxSurge und maxUnavailable. JSON-Format im Klartext oder Base64-codiert. Nicht verwendet von:
Mögliche Äquivalente:
|
Optional | Null | Null |
tolerations |
Toleranzen |
Mit Taints und Toleranzen können Sie die Worker-Knoten steuern, auf denen Add-on-Pods ausgeführt werden. Damit ein Pod auf einem Knoten mit einem Taint ausgeführt werden kann, muss der Pod eine entsprechende Toleranz aufweisen. Setzen Sie JSON-Format im Klartext oder Base64-codiert. Mögliche Äquivalente:
|
Optional | Null | [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]Nur Pods mit dieser Toleranz können auf Worker-Knoten ausgeführt werden, die den Taint |
topologySpreadConstraints |
topologySpreadConstraints |
So verteilen Sie passende Pods auf die angegebene Topologie. JSON-Format im Klartext oder Base64-codiert. Nicht verwendet von:
|
Optional | Null | Null |
| Schlüssel (API und CLI) | Anzeigename des Schlüssels (Konsole) | Beschreibung | Erforderlich/Optional | Standardwert | Beispielwert |
|---|---|---|---|---|---|
deviceIdStrategy
|
Strategie für Gerätekennung |
Welche Strategie zum Übergeben von Geräte-IDs an die zugrunde liegende Laufzeit verwendet werden soll. Einer der folgenden Werte:
|
Optional |
uuid
|
|
deviceListStrategy
|
Gerätelistenstrategie |
Welche Strategie zum Übergeben der Geräteliste an die zugrunde liegende Laufzeit verwendet werden soll. Unterstützte Werte:
In einer kommagetrennten Liste werden mehrere Werte unterstützt. |
Optional |
envvar
|
|
driverRoot
|
Treiber-Root | Der Root-Pfad für die NVIDIA-Treiberinstallation. | Optional |
/
|
|
failOnInitError
|
FailOnInitError |
Gibt an, ob das Plug-in nicht erfolgreich ausgeführt werden kann, wenn während der Initialisierung ein Fehler auftritt. Wenn dieser Wert auf |
Optional |
true
|
|
migStrategy
|
MIG-Strategie |
Welche Strategie zum Bereitstellen von MIG-(Multi-Instance-GPU-)Geräten auf GPUs verwendet werden soll, die sie unterstützen. Einer der folgenden Werte:
|
Optional |
none
|
|
nvidia-gpu-device-plugin.ContainerResources
|
nvidia-gpu-device-plugin-Containerressourcen |
Sie können die Ressourcenmengen angeben, die von den Add-on-Containern angefordert werden, und Grenzwerte für die Ressourcennutzung festlegen, die von den Add-on-Containern nicht überschritten werden dürfen. JSON-Format im Klartext oder Base64-codiert. |
Optional | Null |
{"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}
Erstellen Sie Add-on-Container, die 100 Millicores CPU und 100 Mebibyte Speicher anfordern. Begrenzen Sie Add-on-Container auf 500 Millicores CPU und 200 Mebibyte Arbeitsspeicher. |
passDeviceSpecs
|
Gerätespezifikationen übergeben | Gibt an, ob die Pfade und die gewünschten Geräteknotenberechtigungen für NVIDIA-Geräte übergeben werden sollen, die dem Container zugewiesen werden. | Optional |
false
|
|
useConfigFile
|
Konfigurationsdatei aus ConfigMap verwenden |
Gibt an, ob das Nvidia-Geräte-Plug-in für Kubernetes mit einer Konfigurationsdatei konfiguriert werden soll. Die Konfigurationsdatei wird von einem ConfigMap abgeleitet. Wenn dieser Wert auf Die ConfigMap wird vom Daemonset |
Optional |
false
|
Beispiel für nvidia-device-plugin-config ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: nvidia-device-plugin-config
namespace: kube-system
data:
config.yaml: |
version: v1
flags:
migStrategy: "none"
failOnInitError: true
nvidiaDriverRoot: "/"
plugin:
passDeviceSpecs: false
deviceListStrategy: envvar
deviceIDStrategy: uuidIn der folgenden Tabelle werden die Aspekte beim Konfigurieren dieses Cluster-Add-ons in großen Clustern beschrieben.
| Argumentname | Rollen, Anzahl Knoten | Beschreibung | Bei zunehmender Clustergröße | Risiken | Empfehlung |
|---|---|---|---|---|---|
nvidia-gpu-device-plugin.ContainerResources
|
J |
Definiert CPU- und Speicheranforderungen und Grenzwerte für NVIDIA GPU-Plug-in-Pods. |
Das Plugin wird auf jedem GPU-Knoten als DaemonSet ausgeführt, sodass sich die gesamte Ressourcennutzung mit der Anzahl der GPU-Knoten erhöht. Zusätzliche GPU-Knoten erhöhen:
|
Wenn die Ressourcen zu klein sind:
|
|
affinity / nodeSelectors / tolerations
|
J |
Steuern Sie die Knoten, auf denen NVIDIA GPU-Plug-in-Pods ausgeführt werden. |
|
Wenn diese Argumente falsch konfiguriert sind:
|
|
topologySpreadConstraints
|
N |
Steuert, wie NVIDIA-GPU-Plug-in-Pods auf Knoten und Availability-Domains verteilt sind. |
Topologie-Verteilungsbeschränkungen helfen dabei, eine gleichmäßige Verteilung in Clustern mit mehreren Domains und Clustern mit heterogenen GPU-Knotenpools beizubehalten. |
Wenn keine Topologie-Verteilungs-Constraints konfiguriert sind:
|
Verwenden Sie Topologie-Verteilungsbeschränkungen für große GPU-Cluster, die sich über mehrere Availability-Domains erstrecken oder heterogene GPU-Knotenpools enthalten. |
numOfReplicas
|
N |
Steuert die Anzahl der Replikate für Komponenten, die replikationsbasierte Skalierung unterstützen. |
Das NVIDIA-GPU-Plug-in wird als DaemonSet mit einem Pod auf jedem berechtigten GPU-Knoten ausgeführt. Es wird nicht skaliert, indem eine Replikatanzahl geändert wird. |
Nicht anwendbar | Nicht anwendbar |
rollingUpdate
|
N |
Steuert, wie NVIDIA GPU-Plug-in-Pods aktualisiert werden. |
In großen Clustern kann sich ein Update auf viele GPU-Knoten auswirken und die GPU-Verfügbarkeit vorübergehend reduzieren. |
|
|
failOnInitError
|
J |
Steuert das Plug-in-Verhalten, wenn die Initialisierung nicht erfolgreich verläuft. |
Initialisierungsfehler treten eher irgendwo im Cluster auf, da die Anzahl der GPU-Knoten zunimmt. |
|
|
deviceListStrategy / deviceIdStrategy
|
N |
Steuern Sie, wie GPU-Geräte identifiziert und Containern ausgesetzt werden. |
Die ausgewählten Strategien wirken sich auf die Container-Laufzeitintegration und die GPU-Zuweisungseffizienz über GPU-Knoten hinweg aus. |
Bei falscher Konfiguration werden GPU-Geräte möglicherweise nicht identifiziert oder konsistent in Container injiziert. Dies kann zu GPU-Workload-Fehlern, falschen Gerätezuweisungen oder Planungsproblemen über GPU-Knoten führen. |
Konfigurieren Sie deviceListStrategy und deviceIdStrategy so, dass sie mit Ihrer Containerlaufzeit- und GPU-Umgebung übereinstimmen, und verwenden Sie die Standard-Uuid-Geräteidentifikationsstrategie, sofern ein validierter Anwendungsfall nichts anderes erfordert. |
migStrategy
|
N |
Steuert, wie NVIDIA Multi-Instance-GPU-Ressourcen für Kubernetes verfügbar gemacht werden. |
Multi-Instance-GPU kann die GPU-Freigabe und -Auslastung verbessern, da die Anzahl der GPU-Workloads steigt. |
Wenn dieses Argument falsch konfiguriert ist:
|
Verwenden Sie Multi-Instance-GPU nur, wenn eine GPU-Partitionierung erforderlich ist. |