AMD GPU-Plug-in
Wenn Sie das AMD GPU-Plug-in-Cluster-Add-on aktivieren, können Sie die folgenden Schlüssel/Wert-Paare als Argumente übergeben.
Um sicherzustellen, dass Workloads, die auf AMD-GPU-Worker-Knoten ausgeführt werden, nicht unerwartet unterbrochen werden, wird empfohlen, die Version des AMD-GPU-Plug-in-Add-ons zu wä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 |
|---|---|---|---|---|---|
amd-gpu-device-plugin.ContainerResources |
amd-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. |
pulse
|
Health Checks aktivieren |
Zeitintervall in Sekunden, nach dem das Plug-in das Kubelet mit dem Gerätestatus aktualisiert. Setzen Sie diesen Wert auf |
Optional |
0
|
In 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 |
|---|---|---|---|---|---|
amd-gpu-device-plugin.ContainerResources
|
J |
Definiert CPU- und Speicheranforderungen und -limits für die AMD GPU-Plug-in-Container. |
Das Plugin wird auf jedem GPU-Knoten ausgeführt. Die gesamte Ressourcennutzung wächst linear mit der Anzahl der GPU-Knoten. Die folgenden Aktivitäten nehmen zu:
|
Wenn die Ressourcen zu klein sind:
|
Erhöhen Sie den auf jedem Knoten zugewiesenen Speicher und die CPU auf der Grundlage der folgenden Faktoren:
Überwachen Sie Kubelet-Logs und die CPU- und Speicherauslastung des Plug-ins. |
nodeSelectors/affinity
|
J |
Steuert mithilfe von Labels, auf welchen Knoten das Plug-in ausgeführt wird. |
Stellt sicher, dass das Plugin nur auf AMD-GPU-Knoten ausgeführt wird. Verhindert unnötige Planung auf reinen CPU-Knoten. |
Wenn kein Selektor angegeben ist, wird das Plug-in auf allen Knoten ausgeführt und verschwendet Ressourcen. Wenn der falsche Selektor angegeben ist, wird das Plug-in nicht auf GPU-Knoten ausgeführt, und die GPUs sind für Kubernetes nicht sichtbar. Selbst eine kleine Fehlkonfiguration, die sich auf 1–2% der Knoten auswirkt, kann zu Hunderten falsch konfigurierter Knoten, inkonsistenter GPU-Verfügbarkeit und unvorhersehbaren Planungsfehlern führen. |
Strenge Knotenbeschriftung verwenden |
tolerations
|
J |
Steuert, ob das Plug-in auf verfälschten GPU-Knoten ausgeführt werden kann. |
Wenn die Konfiguration nicht korrekt ist, kann das AMD GPU Plugin DaemonSet möglicherweise nicht auf GPU-Knoten mit Taints geplant werden, wodurch verhindert wird, dass GPU-Ressourcen erkannt werden und GPUs für die Workload-Planung nicht verfügbar sind. |
Wenn Toleranzen falsch konfiguriert sind, kann das Plug-in nicht auf GPU-Knoten ausgeführt werden, und die GPUs können nicht mehr verwendet werden. |
Stellen Sie sicher, dass die Toleranzen mit den Taints übereinstimmen, die auf GPU-Knoten angewendet werden. |
pulse
|
J |
Steuert, wie oft das Plug-in GPU-Zustandsinformationen an das Kubelet meldet. |
Eine höhere Reportinghäufigkeit bietet bessere GPU-Zustandstransparenz, generiert jedoch mehr Kubelet- und API-Traffic. Eine geringere Reportinghäufigkeit reduziert den Overhead, verzögert jedoch die Ausfallerkennung. |
Wenn Updates zu häufig sind, erhöht sich der CPU-Overhead auf jedem Knoten und die Kubelet-Last. Wenn Updates zu selten oder deaktiviert sind, können GPU-Zustandsinformationen veraltet werden, und der Scheduler kann fehlerhaften GPUs Workloads zuweisen. |
Verwenden Sie ein moderates Intervall, das Gesundheitstransparenz gegen Gemeinkosten ausgleicht. Vermeiden Sie übermäßig aggressives Polling. |
rollingUpdate
|
N |
Steuert das Aktualisierungsverhalten. |
In großen Clustern können viele Knoten gleichzeitig aktualisiert werden, was sich auf die GPU-Verfügbarkeit während Upgrades auswirkt. |
|
Verwenden Sie kontrollierte Rolling-Updates, um weit verbreitete Störungen zu vermeiden. |
numOfReplicas
|
N |
Dieses Argument wird vom AMD-GPU-Plug-in nicht verwendet. |
Nicht anwendbar | Nicht anwendbar | Nicht anwendbar |