Unterstützung für die Verbesserung dieser Seite beitragen
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Hardwaregeräte auf Amazon EKS verwalten
Amazon EKS unterstützt zwei Kubernetes-Mechanismen für die Verwaltung spezialisierter Hardwaregeräte in EKS-Clustern: Dynamic Resource Allocation (DRA) und Geräte-Plugins. Beide Mechanismen ermöglichen Workloads den Zugriff auf Hardwarebeschleuniger wie NVIDIA-GPUs und AWS Trainium-Chips sowie auf leistungsstarke Netzwerkgeräte wie Elastic Fabric Adapter (EFA). Es wird empfohlen, DRA-Treiber für neue Bereitstellungen mit Kubernetes-Versionen 1.34 und höher zu verwenden, wenn EKS-verwaltete Knotengruppen oder selbstverwaltete Knoten verwendet werden, da DRA eine umfassendere Geräteauswahl, topologieorientierte Planung und Funktionen zur gemeinsamen Nutzung von Geräten bietet, die mit Geräte-Plug-ins nicht möglich sind.
Allgemeine Informationen zu diesen beiden Kubernetes-Funktionen finden Sie in der Kubernetes-Dokumentation für Dynamic Resource Allocation und Geräte-Plug-ins
Dynamische Ressourcenzuweisung im Vergleich zu Geräte-Plugins
Kubernetes-Geräte-Plugins waren der wichtigste Mechanismus, um spezielle Hardware für Kubernetes-Workloads verfügbar zu machen. Geräte-Plug-ins bewerben Geräte als erweiterte Ressourcen (z. B. nvidia.com/gpu oderaws.amazon.com/neuroncore), die Sie in Container-Ressourcenanfragen und Grenzwerten anfordern. Geräte-Plug-ins werden zwar weithin unterstützt und verwendet, haben jedoch Einschränkungen:
-
Geräte werden als undurchsichtige Ganzzahlwerte ohne attributbasierte Filterung angefordert.
-
Keine Unterstützung für die gemeinsame Nutzung von Geräten zwischen Containern oder Pods.
-
Keine aussagekräftige topologieorientierte Zuordnung zwischen Gerätetypen.
-
Für eine intelligente Platzierung sind häufig benutzerdefinierte Scheduler-Erweiterungen erforderlich.
Dynamic Resource Allocation (DRA) ist eine Kubernetes-Funktion, die in Kubernetes Version 1.34 allgemein verfügbar ist und diese Einschränkungen behebt. Mit DRA veröffentlichen Gerätetreiber umfangreiche Geräteattribute über Objekte im Kubernetes-Scheduler. ResourceSlice Sie fordern Geräte mithilfe von ResourceClaim ResourceClaimTemplate Objekten an, die auf Kategorien verweisen. DeviceClass
DRA ermöglicht:
-
Attribute-based Geräteauswahl mithilfe von CEL-Ausdrücken (Common Expression Language)
. -
Topology-aware Zuweisung, die sicherstellt, dass sich Geräte auf demselben PCIe-Switch oder derselben NUMA-Domäne befinden.
-
Gemeinsame Nutzung von Geräten zwischen mehreren Containern oder Pods über gemeinsame Referenzen.
ResourceClaim -
Constraint-based Planung, die verschiedene Gerätetypen aufeinander abstimmt
DRA-Treiber für Amazon EKS
Die folgenden DRA-Treiber werden häufig für die Verwaltung spezialisierter Hardwaregeräte in Amazon EKS-Clustern verwendet.
- EFA-DRA-Treiber
-
Der EFA-DRA-Treiber (DRANET
) verwaltet die Gerätezuweisung des Elastic Fabric Adapter (EFA) mit topologieorientiertem Scheduling, das EFA-Schnittstellen mit ihren topologisch lokalen GPUs oder Neuron-Geräten verbindet und die gemeinsame Nutzung von Geräten zwischen Pods unterstützt. Weitere Informationen finden Sie unter EFA-Geräte auf Amazon EKS verwalten. - Neuron DRA-Treiber
-
Der Neuron DRA-Treiber verwaltet die Gerätezuweisung für AWS Trainium und AWS Inferentia2 mit topologieorientierter Planung, Teilmengenzuweisung verbundener Geräte und logischer Konfiguration NeuronCore (LNC), ohne dass benutzerdefinierte Scheduler-Erweiterungen erforderlich sind.
- NVIDIA-DRA-Treiber
-
Der NVIDIA DRA-Treiber für GPUs
ermöglicht die flexible Zuweisung und dynamische Neukonfiguration von NVIDIA-GPUs, einschließlich der Unterstützung von ComputeDomainRessourcen für Multi-Node NVLink (MNNVL) -Workloads auf EC2-Instances. Grace-Blackwell Weitere Informationen zur Verwendung mit EC2-Instances finden Sie unter.ComputeDomainsGrace-Blackwell P6e-GB200 UltraServers Mit Amazon EKS verwenden
Geräte-Plugins für Amazon EKS
Die folgenden Geräte-Plug-ins werden häufig für die Verwaltung spezialisierter Hardwaregeräte in Amazon EKS-Clustern verwendet.
- EFA-Geräte-Plugin
-
Das EFA-Geräte-Plugin erkennt alle verfügbaren EFA-Geräte auf jedem Knoten und bewirbt EFA-Geräte als erweiterte Ressourcen.
vpc.amazonaws.com/efa - Neuron-Geräte-Plugin
-
Das Neuron-Geräte-Plugin
stellt Neuron-Hardware als aws.amazon.com/neuroncoreerweiterte Ressourcen zur Verfügung.aws.amazon.com/neuronEs erkennt verfügbare Neuron-Geräte auf jedem Knoten, bewirbt sie als zuweisbare Ressourcen und verwaltet ihren Lebenszyklus. - NVIDIA-Geräte-Plugin
-
Das NVIDIA-Geräte-Plugin
bewirbt NVIDIA-GPUs als nvidia.com/gpuerweiterte Ressourcen und verfolgt den Zustand der GPUs.
Überlegungen
Bevor Sie DRA-Treiber auf Amazon EKS verwenden, sollten Sie die folgenden Überlegungen beachten:
-
DRA ist auf Amazon EKS mit Kubernetes Version 1.33 und höher verfügbar, wird jedoch aufgrund eines Upstream-Kubernetes-Problems für Kubernetes-Versionen 1.34 und höher empfohlen.
Auf Ihrer Cluster-Steuerebene und Ihren Knoten muss eine Kubernetes-Version ausgeführt werden, die DRA unterstützt. -
DRA ist derzeit nicht mit von Karpenter oder EKS im automatischen Modus bereitgestellten Rechenleistung kompatibel. Sie müssen von EKS verwaltete Knotengruppen oder selbstverwaltete Knoten mit DRA-Treibern verwenden.
-
DRA-Treiber und Geräte-Plug-ins für denselben Gerätetyp dürfen nicht gleichzeitig auf demselben Knoten ausgeführt werden. Deinstallieren Sie das Geräte-Plug-In, bevor Sie den entsprechenden DRA-Treiber installieren, oder stellen Sie es auf separaten Knoten bereit. Aktuelle Informationen KEP-5004
zur Kompatibilität von DRA-Treibern und Geräte-Plug-ins finden Sie unter Upstream-Kubernetes. -
DRA verwendet andere Kubernetes-API-Ressourcen (
ResourceClaim,ResourceClaimTemplate,DeviceClass) als Geräte-Plugins (,).resource.limitsresource.requestsFür die Migration von Geräte-Plugins zu DRA müssen Sie Ihre Workload-Spezifikationen aktualisieren. -
Geräte-Plugins werden weiterhin für alle Kubernetes-Versionen vollständig unterstützt. Wenn auf Ihrem Cluster eine Kubernetes-Version vor 1.34 ausgeführt wird oder wenn Sie Karpenter oder EKS Auto Mode verwenden, verwenden Sie weiterhin Geräte-Plugins. Der NVIDIA DRA-Treiber wird auf Bottlerocket nicht unterstützt. Verwenden Sie das NVIDIA-Geräte-Plugin auf Bottlerocket-Knoten. Die EFA- und Neuron DRA-Treiber werden auf Bottlerocket unterstützt.
DRA gegen ResourceClaim ResourceClaimTemplate
Wenn Sie DRA verwenden, fordern Sie Geräte über ResourceClaim oder ResourceClaimTemplate Objekte an. Diese beiden Ressourcentypen dienen unterschiedlichen Zwecken und weisen ein unterschiedliches Lebenszyklusverhalten auf.
- ResourceClaim
-
A
ResourceClaimist ein benanntes Kubernetes-Objekt, das Sie unabhängig von einem Pod erstellen. Sie referenzieren es in einer Pod-Spezifikation namentlich, indem Sie dasresourceClaimNameFeld verwenden. AResourceClaimhat die folgenden Eigenschaften:-
Er muss im Cluster vorhanden sein, bevor ein Pod erstellt wird, der auf ihn verweist. Wenn der Anspruch nicht besteht, befindet sich der Pod weiterhin im Status „Ausstehend“.
-
Er bleibt bestehen, bis Sie ihn explizit löschen, unabhängig davon, ob Pods darauf verweisen.
-
Mehrere Pods können auf dasselbe verweisen
ResourceClaim, was die gemeinsame Nutzung von Geräten ermöglicht. Alle Pods, die auf denselben Anspruch verweisen, haben gemeinsam Zugriff auf dieselben zugewiesenen Geräte und sind für denselben Knoten geplant.Verwenden Sie a
ResourceClaim, wenn Sie mehrere Pods benötigen, um gemeinsam Zugriff auf dieselben Geräte zu haben, oder wenn Sie einen Anspruch benötigen, der über die Lebensdauer eines einzelnen Pods hinaus bestehen muss.
-
- ResourceClaimTemplate
-
A
ResourceClaimTemplatedefiniert eine Vorlage, die Kubernetes verwendet, um automatisch eine eindeutige VorlageResourceClaimfür jeden Pod zu generieren. Sie verweisen in einer Pod-Spezifikation mithilfe desresourceClaimTemplateNameFelds darauf. DasResourceClaimTemplateselbst ist an keinen Pod gebunden — es ist eine wiederverwendbare Vorlage, die unabhängig voneinander bestehen bleibt. AResourceClaimTemplatehat die folgenden Eigenschaften:-
Kubernetes erstellt
ResourceClaimfür jeden Pod, der auf die Vorlage verweist, einen neuen. Jeder Pod erhält seinen eigenen Satz von Geräten. -
Jeder generierte Pod
ResourceClaimist an den Lebenszyklus des Pods gebunden, der seine Erstellung ausgelöst hat. Wenn der Pod gelöscht wird,ResourceClaimwird auch der zugehörige generierte Pod gelöscht. DasResourceClaimTemplateselbst ist nicht betroffen und generiert weiterhin neue Ansprüche für future Pods.Verwenden Sie a
ResourceClaimTemplate, wenn jeder Pod in einem Workload seine eigenen Geräte mit ähnlichen Konfigurationen benötigt. Verwenden Sie beispielsweiseResourceClaimTemplatefür Pods in einem Job, der eine parallel Ausführung verwendet, bei der jeder Pod seine eigenen GPU- oder EFA-Geräte benötigt.
-
In der folgenden Tabelle sind die Unterschiede zwischen und ResourceClaim zusammengefasst. ResourceClaimTemplate
| Behavior | ResourceClaim | ResourceClaimTemplate |
|---|---|---|
|
Erstellung |
Sie erstellen es manuell, bevor Pods darauf verweisen |
Kubernetes generiert automatisch einen Anspruch pro Pod |
|
Lebenszyklus |
Bleibt bestehen, bis Sie ihn löschen |
Die Vorlage bleibt bestehen, bis Sie sie löschen. Jeder generierte Pod |
|
Gemeinsame Nutzung von Geräten über mehrere Pods |
Unterstützt. Mehrere Pods können auf denselben Anspruch verweisen. |
Nicht unterstützt Jeder Pod erhält einen separaten Anspruch. |
|
Feld für die Pod-Spezifikation |
|
|
Beispiele für die Verwendung von ResourceClaim Objekten zur gemeinsamen Nutzung von EFA-Geräten zwischen Pods finden Sie unterTeilen Sie EFA-Geräte auf mehrere Pods. Beispiele für die Verwendung von ResourceClaimTemplate Objekten mit topologieorientierter Zuordnung finden Sie unter. Topology-aware EFA und Gerätezuweisung GPU/Neuron