Création d'un groupe de nœuds géré avec Capacity Blocks for ML - Amazon EKS

Aidez à améliorer cette page

Vous souhaitez contribuer à ce guide de l'utilisateur ? Faites défiler cette page vers le bas et sélectionnez Modifier cette page sur GitHub. Vos contributions aideront à améliorer notre guide de l'utilisateur pour tous.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création d'un groupe de nœuds géré avec Capacity Blocks for ML

Les blocs de capacité pour l'apprentissage automatique (ML) vous permettent de réserver des GPU instances à une date future afin de prendre en charge vos charges de travail de machine learning de courte durée. Pour plus d'informations, consultez Capacity Blocks for ML dans le guide de EC2 l'utilisateur Amazon pour les instances Linux.

Considérations

Important
  • Les blocs de capacité ne sont disponibles que pour certains types d'EC2instances Amazon et Régions AWS. Pour plus d'informations sur la compatibilité, consultez les conditions préalables à l'utilisation des blocs de capacité dans le guide de EC2 l'utilisateur Amazon pour les instances Linux.

  • Pour plus d'informations, consultez la section Utiliser les blocs de capacité pour les charges de travail d'apprentissage automatique dans le guide de l'utilisateur d'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 sur0.

Créez un groupe de nœuds gérés avec Amazon EC2 Capacity Blocks

Vous pouvez utiliser des blocs de capacité avec des groupes de nœuds EKS gérés par Amazon pour le provisionnement et le dimensionnement de nœuds de travail GPU accélérés. Les exemples de AWS CloudFormation modèles suivants ne couvrent pas tous les aspects nécessaires à un cluster de production. Généralement, vous souhaiteriez également qu'un script d'amorçage relie le nœud au cluster et spécifie l'accélérateur AmazonEKS. AMI Pour de plus amples informations, veuillez consulter Créez un groupe de nœuds gérés pour votre cluster.

  1. Créez un modèle de lancement adapté à vos charges de travail et compatible avec les groupes de nœuds EKS gérés par Amazon. Pour de plus amples informations, veuillez consulter Personnalisez les nœuds gérés avec des modèles de lancement.

    Outre les exigences des procédures ci-dessus, assurez-vous qu'elles LaunchTemplateData incluent les éléments suivants :

    • InstanceMarketOptions avec MarketType défini sur "capacity-block"

    • CapacityReservationSpecification: CapacityReservationTargetavec CapacityReservationId dé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)

    Voici un extrait d'un CloudFormation modèle qui crée un modèle de lancement ciblant un bloc de capacité. Pour créer un groupe de nœuds AMI géré personnalisé, vous pouvez également ajouter ImageId des UserData paramètres.

    NodeLaunchTemplate: Type: "AWS::EC2::LaunchTemplate" Properties: LaunchTemplateData: InstanceMarketOptions: MarketType: "capacity-block" CapacityReservationSpecification: CapacityReservationTarget: CapacityReservationId: "cr-02168da1478b509e0" InstanceType: p5.48xlarge
  2. Utilisez le modèle de lancement pour créer un groupe de nœuds gérés.

    Voici un exemple de commande de création de groupe de nœuds pour Capacity Blocks. example-valuesRemplacez-les par ceux applicables à votre cluster.

    Lors de la création du groupe de nœuds géré par Capacity Block, procédez comme suit :

    • Définissez capacity-type sur "CAPACITY_BLOCK". Si le type de capacité n'est pas défini sur "CAPACITY_BLOCK" ou si l'une des autres valeurs de modèle de lancement requises ci-dessus est manquante, la demande de création sera rejetée.

    • Lorsque vous spécifiez subnets dans la demande de création, assurez-vous de ne spécifier que le sous-réseau dans la même zone de disponibilité que la réservation de capacité.

    • Si vous spécifiez une valeur différente de zéro desiredSize dans la demande de création, Amazon l'EKShonorera lors de la création du groupe Auto Scaling (ASG). Toutefois, si la demande de création est effectuée avant que la réservation de capacité ne soit active, les EC2 instances Amazon ASG ne pourront pas être lancées tant qu'elles ne seront pas activées. Par conséquent, les activités de ASG dimensionnement comporteront des erreurs de lancement. Chaque fois que la réservation devient active, le lancement des instances sera couronné de succès et ASG elles seront étendues à la valeur desiredSize mentionnée au moment 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 \ --capacity-type "CAPACITY_BLOCK" \ --launch-template id="lt-id",version=1
  3. Assurez-vous que les nœuds se rejoignent après la mise à l'échelle. EKSLes clusters Amazon utilisant des groupes de nœuds gérés avec des blocs de capacité n'effectuent aucune validation indiquant que les instances lancées rejoignent le cluster et s'y enregistrent.

  4. Si vous l'avez défini desiredSize 0 au moment de la création, vous disposez de différentes options pour augmenter le groupe de nœuds lorsque la réservation de capacité devient active :

    • Créez une politique de dimensionnement planifiée ASG qui s'aligne sur l'heure de début de la réservation du Capacity Block. Pour plus d'informations, consultez la section Scheduled Scaling for Amazon EC2 Auto Scaling dans le guide de l'utilisateur d'Amazon EC2 Auto Scaling.

    • Utilisez la EKS console Amazon ou eks update-nodegroup-config pour mettre à jour la configuration de dimensionnement et définir la taille souhaitée du groupe de nœuds.

    • Utilisez le Kubernetes Cluster Autoscaler. Pour plus d'informations, consultez Cluster Autoscaler activé. AWS

  5. Le groupe de nœuds est maintenant prêt à recevoir les charges de travail et à programmer Pods.

  6. Pour que votre compte soit Pods correctement vidé avant la fin de la réservation, Amazon EKS utilise une politique de dimensionnement planifié pour réduire la taille du groupe de nœuds à0. Cette mise à l'échelle planifiée sera définie avec un nom intituléAmazon EKS Node Group Capacity Scaledown Before Reservation End. Nous vous recommandons de ne pas modifier ou supprimer cette action.

    Amazon EC2 commence à fermer les instances 30 minutes avant la fin de la réservation. Par conséquent, Amazon EKS mettra en place une réduction planifiée du groupe de nœuds 40 minutes avant la fin de leur réservation afin de procéder à une expulsion Pods sûre et élégante.