Aidez à améliorer cette page
Pour contribuer à ce guide de l’utilisateur, cliquez sur le lien Modifier cette page sur GitHub qui se trouve dans le volet droit de chaque page.
Création d’un groupe de nœuds géré avec des blocs de capacité pour ML
Les blocs de capacité pour le Machine Learning (ML) vous permettent de réserver des instances GPU à une date ultérieure pour prendre en charge vos charges de travail de ML de courte durée. Pour plus d’informations, consultez la section Blocs de capacité pour ML dans le Guide de l’utilisateur Amazon EC2 pour les instances Linux.
Considérations
Important
-
Les blocs de capacité ne sont disponibles que pour certains types d’instances Amazon EC2 et dans certaines régions AWS. Pour plus d’informations sur la compatibilité, consultez la section Prérequis pour l’utilisation des blocs de capacité dans le Guide de l’utilisateur Amazon EC2 pour les instances Linux.
-
Pour plus d’informations, consultez la section Utiliser des blocs de capacité pour les charges de travail de machine learning dans le Guide de l’utilisateur Amazon EC2 Auto Scaling.
-
Les groupes de nœuds gérés avec des blocs de capacité ne peuvent être créés qu’avec des modèles de lancement personnalisés.
-
Lorsque vous mettez à niveau des groupes de nœuds gérés avec des blocs de capacité, assurez-vous que la taille souhaitée du groupe de nœuds est définie sur
0.
Création d’un groupe de nœuds géré avec des blocs de capacité Amazon EC2
Vous pouvez utiliser des blocs de capacité avec les groupes de nœuds gérés par Amazon EKS afin de provisionner et de mettre à l’échelle des composants master GPU accélérés. Les exemples de modèles AWS CloudFormation ci-dessous ne couvrent pas tous les éléments nécessaires pour un cluster en production. En pratique, vous devrez également inclure un script d’amorçage permettant au nœud de rejoindre le cluster et spécifier une AMI Amazon EKS accélérée. Pour de plus amples informations, consultez Création d’un groupe de nœuds gérés pour votre cluster.
-
Créez un modèle de lancement adapté à vos charges de travail et compatible avec les groupes de nœuds gérés par Amazon EKS. Pour de plus amples informations, consultez Personnaliser les nœuds gérés à l’aide de modèles de lancement.
En plus des exigences mentionnées dans les procédures ci-dessus, assurez-vous que le
LaunchTemplateDatainclut les éléments suivants :-
InstanceMarketOptionsavecMarketTypedéfini sur"capacity-block" -
CapacityReservationSpecification: CapacityReservationTargetavecCapacityReservationIddéfini sur le bloc de capacité (par exemple :cr-)02168da1478b509e0 -
InstanceTypedéfini sur un type d’instance qui prend en charge les blocs de capacité (par exemple :p5.48xlarge)L’exemple ci-dessous présente un modèle CloudFormation permettant de créer un modèle de lancement conçu pour utiliser un bloc de capacité. Pour créer un groupe de nœuds gérés avec une AMI personnalisée, vous pouvez également ajouter les paramètres
ImageIdetUserData.NodeLaunchTemplate: Type: "AWS::EC2::LaunchTemplate" Properties: LaunchTemplateData: InstanceMarketOptions: MarketType: "capacity-block" CapacityReservationSpecification: CapacityReservationTarget: CapacityReservationId: "cr-02168da1478b509e0" InstanceType: p5.48xlarge
-
-
Ensuite, utilisez le modèle de lancement pour créer le groupe de nœuds gérés.
L’exemple ci-dessous illustre une commande de création d’un groupe de nœuds utilisant des blocs de capacité. Remplacez
example-valuespar les valeurs propres à votre cluster.Lorsque vous créez un groupe de nœuds gérés utilisant des blocs de capacité, procédéz comme suit :
-
Définissez
capacity-typesur"CAPACITY_BLOCK". Si le type de capacité n’est pas défini sur"CAPACITY_BLOCK"ou si l’une des valeurs requises ci-dessus dans le modèle de lancement est absente, la demande de création sera rejetée. -
Lorsque vous spécifiez
subnetsdans la demande de création, assurez-vous de n’indiquer que le sous-réseau situé dans la même zone de disponibilité que la réserve de capacité. -
Si vous spécifiez une valeur
desiredSizenon nulle dans la demande de création, Amazon EKS respectera cette valeur lors de la création du groupe Auto Scaling (ASG). Toutefois, si la demande de création est effectuée avant l’activation de la réserve de capacité, l’ASG ne pourra pas lancer d’instances Amazon EC2 tant que la réserve n’est pas active. Par conséquent, les activités de mise à l’échelle de l’ASG entraîneront des erreurs de lancement. Dès que la réservation devient active, le lancement des instances réussira et l’ASG sera mis à l’échelle jusqu’à la valeurdesiredSizedéfinie lors de la création.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
-
-
Assurez-vous que les nœuds rejoignent bien le cluster après la mise à l’échelle pour l’augmentation verticale. Les clusters Amazon EKS utilisant des groupes de nœuds gérés avec blocs de capacité ne vérifient pas que les instances lancées rejoignent et s’enregistrent correctement auprès du cluster.
-
Si vous avez défini
desiredSizesur0au moment de la création, vous disposez de plusieurs options pour mettre à l’échelle le groupe de nœuds en vue de l’augmentation verticale lorsque la réserve de capacité devient active :-
Créez une stratégie de mise à l’échelle programmée pour l’ASG, alignée sur l’heure de début de la réservation du bloc de capacité. Pour plus d'informations, consultez la section Mise à l'échelle programmée pour Amazon EC2 Auto Scaling dans le Guide de l'utilisateur d'Amazon EC2 Auto Scaling.
-
Utiliser la console Amazon EKS ou
eks update-nodegroup-configpour mettre à jour la configuration d’échelle et définir la taille souhaitée du groupe de nœuds. -
Utiliser l’outil Cluster Autoscaler de Kubernetes. Pour plus d'informations, consultez Cluster Autoscaler sur AWS
.
-
-
Le groupe de nœuds est maintenant prêt à accueillir les charges de travail et à programmer des pods.
-
Afin que vos pods soient correctement vidés avant la fin de la réserve, Amazon EKS utilise une stratégie de mise à l’échelle planifiée pour réduire verticalement la taille du groupe de nœuds à
0. Cette mise à l’échelle planifiée portera le nomAmazon EKS Node Group Capacity Scaledown Before Reservation End. Nous vous recommandons de ne pas modifier ni supprimer cette action.Amazon EC2 commence à arrêter les instances 30 minutes avant la fin de la réservation. Par conséquent, Amazon EKS configure une réduction verticale planifiée de la taille du groupe de nœuds 40 minutes avant la fin de la réservation afin de permettre une éviction sécurisée et progressive des pods.