Unterstützung für die Verbesserung dieser Seite beitragen
Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.
Erstellung einer verwalteten Knotengruppe mit Kapazitätsblöcken für ML
Kapazitätsblöcke für Machine Learning (ML) ermöglichen es Ihnen, GPU-Instances zu einem zukünftigen Zeitpunkt zu reservieren, um Ihre ML-Workloads mit kurzer Dauer zu unterstützen. Weitere Informationen finden Sie unter Kapazitätsblöcke für ML im Amazon-EC2-Benutzerhandbuch für Linux-Instances.
Überlegungen
Wichtig
-
Kapazitätsblöcke sind nur für bestimmte Amazon-EC2-Instance-Typen und AWS-Regionen verfügbar. Informationen zur Kompatibilität finden Sie unter Arbeiten mit Kapazitätsblöcken – Voraussetzungen im Amazon-EC2-Benutzerhandbuch für Linux-Instances.
-
Weitere Informationen finden Sie unter Verwenden von Kapazitätsblöcken für Machine Learning im Benutzerhandbuch für Amazon EC2 Auto Scaling.
-
Verwaltete Knotengruppen mit Kapazitätsblöcken können nur mit benutzerdefinierten Startvorlagen erstellt werden.
-
Stellen Sie beim Upgrade verwalteter Knotengruppen mit Kapazitätsblöcken sicher, dass die gewünschte Größe der Knotengruppe auf
0eingestellt ist.
Erstellung einer verwalteten Knotengruppe mit Amazon-EC2-Kapazitätsblöcken
Sie können Kapazitätsblöcke mit von Amazon EKS verwalteten Knotengruppen zum Bereitstellen und Skalieren von GPU-beschleunigten Worker-Knoten verwenden. Die folgenden Beispiele für AWS-CloudFormation-Vorlagen decken nicht alle Aspekte ab, die in Produktions-Clustern erforderlich sind. Normalerweise benötigen Sie auch ein Bootstrapping-Skript, um den Knoten mit dem Cluster zu verbinden und ein beschleunigtes Amazon-EKS-AMI anzugeben. Weitere Informationen finden Sie unter Eine verwaltete Knotengruppe für Ihren Cluster erstellen.
-
Erstellen Sie eine Startvorlage, die für Ihre Workloads geeignet ist und mit von Amazon EKS verwalteten Knotengruppen funktioniert. Weitere Informationen finden Sie unter Verwaltete Knoten mit Startvorlagen anpassen.
Stellen Sie zusätzlich zu den Anforderungen in den oben genannten Verfahren sicher, dass
LaunchTemplateDataFolgendes enthält:-
InstanceMarketOptionsmit der Einstellung"capacity-block"fürMarketType -
CapacityReservationSpecification: CapacityReservationTargetmitCapacityReservationIdals Kapazitätsblock (zum Beispiel:cr-)02168da1478b509e0 -
InstanceTypeauf einen Instance-Typ eingestellt, der Kapazitätsblöcke unterstützt (zum Beispiel:p5.48xlarge)Nachfolgend finden Sie einen Auszug aus einer CloudFormation-Vorlage, die eine Startvorlage für einen Kapazitätsblock erstellt. Um eine benutzerdefinierte AMI-verwaltete Knotengruppe zu erstellen, können Sie auch
ImageId- undUserData-Parameter hinzufügen.NodeLaunchTemplate: Type: "AWS::EC2::LaunchTemplate" Properties: LaunchTemplateData: InstanceMarketOptions: MarketType: "capacity-block" CapacityReservationSpecification: CapacityReservationTarget: CapacityReservationId: "cr-02168da1478b509e0" InstanceType: p5.48xlarge
-
-
Verwenden Sie die Startvorlage, um eine verwaltete Knotengruppe zu erstellen.
Nachfolgend finden Sie ein Beispiel für den Befehl zum Erstellen einer Knotengruppe für Kapazitätsblöcke. Ersetzen Sie die
Beispielwertedurch die für Ihren Cluster geltenden Werte.Gehen Sie beim Erstellen der verwalteten Knotengruppe für Kapazitätsblöcke wie folgt vor:
-
Legen Sie den Wert für
capacity-typeauf"CAPACITY_BLOCK"fest. Wenn der Kapazitätstyp nicht auf"CAPACITY_BLOCK"gesetzt ist oder einer der anderen oben genannten erforderlichen Startvorlagenwerte fehlt, wird die Erstellungsanfrage abgelehnt. -
Achten Sie beim Angeben von
subnetsin der Erstellungsanfrage darauf, nur das Subnetz in derselben Availability Zone wie die Kapazitätsreservierung anzugeben. -
Wenn Sie in der Erstellungsanforderung einen
desiredSizeungleich Null angeben, berücksichtigt Amazon EKS dies beim Erstellen der Auto Scaling-Gruppe (ASG). Erfolgt die Erstellungsanfrage jedoch vor Aktivierung der Kapazitätsreservierung, kann die ASG keine Amazon-EC2-Instances starten, bis sie aktiviert wird. Dies führt dazu, dass bei ASG-Skalierungsaktivitäten Startfehler auftreten. Sobald die Reservierung aktiv wird, ist der Start der Instances erfolgreich und die ASG wird auf die bei der Erstellung angegebenedesiredSizeskaliert.aws eks create-nodegroup \ --cluster-name my-cluster \ --nodegroup-name my-mng \ --node-role node-role-arn \ --region region-code \ --subnets subnet-id \ --scaling-config minSize=node-group-min-size,maxSize=node-group-max-size,desiredSize=node-group-desired-size \ --ami-type "AL2023_x86_64_NVIDIA" \ --capacity-type "CAPACITY_BLOCK" \ --launch-template id="lt-id",version=1
-
-
Stellen Sie sicher, dass die Knoten nach der Hochskalierung hinzugefügt werden. Amazon-EKS-Cluster, die verwaltete Knotengruppen mit Kapazitätsblöcken verwenden, führen keine Überprüfungen durch, ob die gestarteten Instances tatsächlich zum Cluster hinzugefügt und dort registriert werden.
-
Wenn Sie
desiredSizebeim Erstellen auf0setzen, haben Sie verschiedene Möglichkeiten, die Knotengruppe hoch zu skalieren, wenn die Kapazitätsreservierung aktiv wird:-
Erstellen Sie eine geplante Skalierungsrichtlinie für die ASG, die mit dem Startzeitpunkt der Kapazitätsblock-Reservierung übereinstimmt. Weitere Informationen finden Sie unter Geplante Skalierung für Amazon EC2 Auto Scaling im Amazon EC2 Auto Scaling-Benutzerhandbuch.
-
Verwenden Sie die Amazon-EKS-Konsole oder
eks update-nodegroup-config, um die Skalierungskonfiguration zu aktualisieren und die gewünschte Größe der Knotengruppe festzulegen. -
Verwenden Sie den Kubernetes Cluster Autoscaler. Weitere Informationen finden Sie unter Cluster Autoscaler on AWS
.
-
-
Die Knotengruppe ist jetzt bereit für die Planung von Workloads und Pods.
-
Damit Ihre Pods vor Ablauf der Reservierung ordnungsgemäß entleert werden, verwendet Amazon EKS eine geplante Skalierungsrichtlinie, um die Größe der Knotengruppe auf
0herunterzuskalieren. Diese geplante Skalierung wird mit dem NamenAmazon EKS Node Group Capacity Scaledown Before Reservation Endfestgelegt. Wir empfehlen, diese Aktion nicht zu bearbeiten oder zu löschen.Amazon EC2 beginnt 30 Minuten vor Ablauf der Reservierungszeit mit dem Herunterfahren der Instances. Daher richtet Amazon EKS 40 Minuten vor dem Ende der Reservierung eine geplante Herunterskalierung der Knotengruppe ein, um Pods sicher und ordnungsgemäß zu entfernen.