View a markdown version of this page

Hardwaregeräte auf Amazon EKS verwalten - Amazon EKS

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 ComputeDomain Ressourcen für Multi-Node NVLink (MNNVL) -Workloads auf EC2-Instances. Grace-Blackwell Weitere Informationen zur Verwendung mit EC2-Instances finden Sie unter. ComputeDomains Grace-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/neuroncore erweiterte Ressourcen zur Verfügung. aws.amazon.com/neuron Es 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/gpu erweiterte 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-5004zur 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.limits resource.requests Fü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 ResourceClaim ist ein benanntes Kubernetes-Objekt, das Sie unabhängig von einem Pod erstellen. Sie referenzieren es in einer Pod-Spezifikation namentlich, indem Sie das resourceClaimName Feld verwenden. A ResourceClaim hat 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 verweisenResourceClaim, 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 aResourceClaim, 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 ResourceClaimTemplate definiert eine Vorlage, die Kubernetes verwendet, um automatisch eine eindeutige Vorlage ResourceClaim für jeden Pod zu generieren. Sie verweisen in einer Pod-Spezifikation mithilfe des resourceClaimTemplateName Felds darauf. Das ResourceClaimTemplate selbst ist an keinen Pod gebunden — es ist eine wiederverwendbare Vorlage, die unabhängig voneinander bestehen bleibt. A ResourceClaimTemplate hat die folgenden Eigenschaften:

  • Kubernetes erstellt ResourceClaim für jeden Pod, der auf die Vorlage verweist, einen neuen. Jeder Pod erhält seinen eigenen Satz von Geräten.

  • Jeder generierte Pod ResourceClaim ist an den Lebenszyklus des Pods gebunden, der seine Erstellung ausgelöst hat. Wenn der Pod gelöscht wird, ResourceClaim wird auch der zugehörige generierte Pod gelöscht. Das ResourceClaimTemplate selbst ist nicht betroffen und generiert weiterhin neue Ansprüche für future Pods.

    Verwenden Sie aResourceClaimTemplate, wenn jeder Pod in einem Workload seine eigenen Geräte mit ähnlichen Konfigurationen benötigt. Verwenden Sie beispielsweise ResourceClaimTemplate fü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 ResourceClaim ist an den Pod gebunden, der seine Erstellung ausgelöst hat.

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

resourceClaimName

resourceClaimTemplateName

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

Topics