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.
Erstellen Sie selbstverwaltete Knoten mit Capacity Blocks for ML
Mit Kapazitätsblöcken für maschinelles Lernen (ML) können Sie GPU Instanzen zu einem future Zeitpunkt reservieren, um Ihre ML-Workloads mit kurzer Dauer zu unterstützen. Weitere Informationen finden Sie unter Capacity Blocks for ML im EC2Amazon-Benutzerhandbuch für Linux-Instances.
Überlegungen
Wichtig
-
Kapazitätsblöcke sind nur für bestimmte EC2 Amazon-Instance-Typen und AWS Regionen verfügbar. Informationen zur Kompatibilität finden Sie unter Voraussetzungen für das Arbeiten mit Kapazitätsblöcken im EC2Amazon-Benutzerhandbuch für Linux-Instances.
-
Kapazitätsblöcke können derzeit nicht verwendet werden mit Karpenter.
-
Wenn Sie eine selbstverwaltete Knotengruppe erstellen, bevor die Kapazitätsreservierung aktiv wird, legen Sie die gewünschte Kapazität auf
0
fest. -
Um genügend Zeit zu haben, den/die Knoten ordnungsgemäß zu entleeren, empfehlen wir, die Skalierung so zu planen, dass sie mehr als 30 Minuten vor der Endzeit der Kapazitätsblock-Reservierung auf Null skaliert.
-
In der Reihenfolge Ihrer Pods Damit das System ordnungsgemäß entleert wird, empfehlen wir Ihnen, AWS Node Termination Handler so einzurichten, wie in den Beispielschritten beschrieben.
Verwenden Sie Capacity Blocks mit selbstverwalteten Knoten
Sie können Capacity Blocks mit Amazon EKS für die Bereitstellung und Skalierung Ihrer selbstverwalteten Knoten verwenden. Die folgenden Schritte geben einen allgemeinen Beispielüberblick. Die AWS CloudFormation Vorlagenbeispiele decken nicht alle Aspekte ab, die für einen Produktions-Workload erforderlich sind. In der Regel benötigen Sie auch ein Bootstrapping-Skript, um den Knoten mit dem Cluster zu verbinden, den EKS AMI Amazon-Beschleunigungsmodus und ein geeignetes Instance-Profil für den Beitritt zum Cluster anzugeben. Weitere Informationen finden Sie unter Erstellen Sie selbstverwaltete Amazon Linux-Knoten.
-
Erstellen Sie eine Startvorlage, die für Ihren Workload geeignet ist. Weitere Informationen finden Sie unter Verwenden von Kapazitätsblöcken für maschinelles Lernen im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.
Stellen Sie sicher, dass
LaunchTemplateData
dies Folgendes beinhaltet:-
InstanceMarketOptions
mit der Einstellung"capacity-block"
fürMarketType
-
CapacityReservationSpecification: CapacityReservationTarget
mitCapacityReservationId
Einstellung auf den Capacity-Block (zum Beispiel:cr-
)02168da1478b509e0
-
IamInstanceProfile
mit demArn
Satz auf den zutreffendeniam-instance-profile-arn
-
ImageId
auf das Zutreffende setzenimage-id
-
InstanceType
auf einen Instance-Typ gesetzt, der Capacity Blocks unterstützt (zum Beispiel:p5.48xlarge
) -
SecurityGroupIds
auf den zutreffenden Wert gesetzt IDs (zum Beispiel:sg-05b1d815d1EXAMPLE
) -
UserData
auf das Zutreffende setzenuser-data
für Ihre selbstverwaltete KnotengruppeIm Folgenden finden Sie einen Auszug aus einer CloudFormation Vorlage, mit der eine Startvorlage für einen Kapazitätsblock erstellt wird.
NodeLaunchTemplate: Type: "aws::EC2::LaunchTemplate" Properties: LaunchTemplateData: InstanceMarketOptions: MarketType: "capacity-block" CapacityReservationSpecification: CapacityReservationTarget: CapacityReservationId: "cr-02168da1478b509e0" IamInstanceProfile: Arn: iam-instance-profile-arn ImageId: image-id InstanceType: p5.48xlarge KeyName: key-name SecurityGroupIds: - sg-05b1d815d1EXAMPLE UserData: user-data
Sie müssen das Subnetz in der Availability Zone übergeben, in der die Reservierung vorgenommen wurde, da Kapazitätsblöcke zonal sind.
-
-
Verwenden Sie die Startvorlage, um eine selbstverwaltete Knotengruppe zu erstellen. Wenn Sie dies tun, bevor die Kapazitätsreservierung aktiv wird, setzen Sie die gewünschte Kapazität auf
0
. Achten Sie beim Erstellen der Knotengruppe darauf, dass Sie nur das entsprechende Subnetz für die Availability Zone angeben, in der die Kapazität reserviert ist.Im Folgenden finden Sie eine CloudFormation Beispielvorlage, auf die Sie zurückgreifen können, wenn Sie eine Vorlage erstellen, die für Ihren Workload geeignet ist. In diesem Beispiel wird das
LaunchTemplateId
EndeVersion
derAWS::Amazon EC2::LaunchTemplate
Ressource abgerufen, die im vorherigen Schritt angezeigt wurde. Sie erhält auch die Werte fürDesiredCapacity
,MaxSize
,MinSize
, undVPCZoneIdentifier
, die an anderer Stelle in derselben Vorlage deklariert sind.NodeGroup: Type: "AWS::AutoScaling::AutoScalingGroup" Properties: DesiredCapacity: !Ref NodeAutoScalingGroupDesiredCapacity LaunchTemplate: LaunchTemplateId: !Ref NodeLaunchTemplate Version: !GetAtt NodeLaunchTemplate.LatestVersionNumber MaxSize: !Ref NodeAutoScalingGroupMaxSize MinSize: !Ref NodeAutoScalingGroupMinSize VPCZoneIdentifier: !Ref Subnets Tags: - Key: Name PropagateAtLaunch: true Value: !Sub ${ClusterName}-${NodeGroupName}-Node - Key: !Sub kubernetes.io/cluster/${ClusterName} PropagateAtLaunch: true Value: owned
-
Nachdem die Knotengruppe erfolgreich erstellt wurde, stellen Sie sicher, dass Sie die
NodeInstanceRole
für die Knotengruppe aufzeichnen, die erstellt wurde. Sie benötigen dies, um sicherzustellen, dass bei der Skalierung der Knotengruppe die neuen Knoten dem Cluster beitreten und Kubernetes ist in der Lage, die Knoten zu erkennen. Weitere Informationen finden Sie in den AWS Management Console Anweisungen unter Selbstverwaltete Amazon Linux-Knoten erstellen. -
Wir empfehlen Ihnen, eine geplante Skalierungsrichtlinie für die Auto-Scaling-Gruppe zu erstellen, die sich an den Reservierungszeiten für Kapazitätsblöcke orientiert. Weitere Informationen finden Sie unter Geplante Skalierung für Amazon EC2 Auto Scaling im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.
Sie können alle von Ihnen reservierten Instances bis 30 Minuten vor Ablauf der Endzeit des Kapazitätsblocks verwenden. Instances, die zu diesem Zeitpunkt noch laufen, werden beendet. Um genügend Zeit zu haben, den/die Knoten ordnungsgemäß zu entleeren, empfehlen wir, die Skalierung so zu planen, dass sie mehr als 30 Minuten vor der Endzeit der Kapazitätsblock-Reservierung auf Null skaliert.
Wenn Sie stattdessen manuell skalieren möchten, wann immer die Kapazitätsreservierung erfolgt
Active
, müssen Sie die gewünschte Kapazität der Auto Scaling Scaling-Gruppe zum Startzeitpunkt der Kapazitätsblockreservierung aktualisieren. Dann müssten Sie auch mehr als 30 Minuten vor dem Ende der Kapazitätsblock-Reservierung manuell herunterskalieren. -
Die Knotengruppe ist jetzt bereit für Workloads und Pods muss geplant werden.
-
Damit dein Pods Um ordnungsgemäß entleert zu werden, empfehlen wir Ihnen, AWS Node Termination Handler einzurichten. Dieser Handler wird in der Lage sein, auf „ASGScale-In“ -Lebenszyklusereignisse von Amazon EC2 Auto Scaling zu achten EventBridge und die Kubernetes Kontrollebene, um die erforderlichen Maßnahmen zu ergreifen, bevor die Instance nicht mehr verfügbar ist. Andernfalls ist Ihr Pods and Kubernetes Objekte bleiben im Status „Ausstehend“ hängen. Weitere Informationen finden Sie unter AWS Node Termination Handler
on GitHub. Wenn Sie keinen Node Termination Handler einrichten, empfehlen wir Ihnen, mit der Entleerung Ihres Pods manuell, bevor Sie das 30-Minuten-Zeitfenster erreichen, damit sie genügend Zeit haben, um ordnungsgemäß entleert zu werden.