Crea un gruppo di nodi gestito con Capacity Blocks for ML - Amazon EKS

Aiutaci a migliorare questa pagina

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea un gruppo di nodi gestito con Capacity Blocks for ML

I blocchi di capacità per il machine learning (ML) ti consentono di riservare istanze GPU in una data futura per supportare i carichi di lavoro ML di breve durata. Per ulteriori informazioni, consulta Capacity Blocks for ML nella Amazon EC2 User Guide for Linux Instances.

Considerazioni

Importante
  • I Blocchi di capacità sono disponibili solo per determinati tipi di EC2 istanze e AWS regioni Amazon. Per informazioni sulla compatibilità, consulta Work with Capacity Blocks Prerequisites nella Amazon EC2 User Guide for Linux Instances.

  • Per ulteriori informazioni, consulta Use Capacity Blocks per carichi di lavoro di machine learning nella Amazon EC2 Auto Scaling User Guide.

  • I gruppi di nodi gestiti con Capacity Blocks possono essere creati solo con modelli di avvio personalizzati.

  • Quando aggiorni i gruppi di nodi gestiti con Capacity Blocks, assicurati che la dimensione desiderata del gruppo di nodi sia impostata su. 0

Crea un gruppo di nodi gestito con Amazon EC2 Capacity Blocks

Puoi utilizzare Capacity Blocks con i gruppi di nodi gestiti di Amazon EKS per il provisioning e la scalabilità dei nodi di lavoro accelerati da GPU. Gli esempi AWS CloudFormation di modelli che seguono non coprono tutti gli aspetti necessari in un cluster di produzione. In genere, ti consigliamo anche di utilizzare uno script di bootstrap per unire il nodo al cluster e specificare un'AMI accelerata Amazon EKS. Per ulteriori informazioni, consulta Crea un gruppo di nodi gestito per il tuo cluster.

  1. Crea un modello di lancio adatto ai tuoi carichi di lavoro e che funzioni con i gruppi di nodi gestiti di Amazon EKS. Per ulteriori informazioni, consulta Personalizza i nodi gestiti con modelli di lancio.

    Oltre ai requisiti delle procedure precedenti, assicurati che LaunchTemplateData includa quanto segue:

    • InstanceMarketOptions con MarketType impostato su "capacity-block"

    • CapacityReservationSpecification: CapacityReservationTargetcon CapacityReservationId impostato sul Capacity Block (ad esempio:cr-02168da1478b509e0 )

    • InstanceTypeimpostato su un tipo di istanza che supporta Capacity Blocks (ad esempio:p5.48xlarge)

      Di seguito è riportato un estratto di un CloudFormation modello che crea un modello di lancio destinato a un Capacity Block. Per creare un gruppo di nodi gestiti AMI personalizzato, puoi anche aggiungere ImageId UserData parametri.

      NodeLaunchTemplate: Type: "AWS::EC2::LaunchTemplate" Properties: LaunchTemplateData: InstanceMarketOptions: MarketType: "capacity-block" CapacityReservationSpecification: CapacityReservationTarget: CapacityReservationId: "cr-02168da1478b509e0" InstanceType: p5.48xlarge
  2. Utilizza il modello di avvio per creare un gruppo di nodi gestito.

    Di seguito è riportato un esempio di comando create node group per Capacity Blocks. Sostituiscilo example-values con quelli applicabili al tuo cluster.

    Quando crei il gruppo di nodi gestiti Capacity Block, procedi come segue:

    • Imposta capacity-type su "CAPACITY_BLOCK". Se il tipo di capacità non è impostato su "CAPACITY_BLOCK" o manca uno degli altri valori del modello di avvio sopra richiesti, la richiesta di creazione verrà rifiutata.

    • Quando specificate subnets nella richiesta di creazione, assicuratevi di specificare solo la sottorete nella stessa zona di disponibilità della prenotazione della capacità.

    • Se specifichi un valore diverso da zero desiredSize nella richiesta di creazione, Amazon EKS lo rispetterà durante la creazione del gruppo Auto Scaling (ASG). Tuttavia, se la richiesta di creazione viene effettuata prima che la prenotazione della capacità sia attiva, ASG non sarà in grado di avviare EC2 istanze Amazon finché non diventa attiva. Di conseguenza, le attività di scalabilità ASG presenteranno errori di avvio. Ogni volta che la prenotazione diventa attiva, il lancio delle istanze avrà esito positivo e l'ASG verrà scalato fino a raggiungere i valori indicati al momento della desiredSize creazione.

      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
  3. Assicurati che i nodi si uniscano dopo la scalabilità. I cluster Amazon EKS che utilizzano gruppi di nodi gestiti con blocchi di capacità non eseguono alcuna convalida del fatto che le istanze lanciate si uniscano e si registrino effettivamente nel cluster.

  4. Se lo desiredSize imposti 0 al momento della creazione, hai diverse opzioni per aumentare il gruppo di nodi quando la prenotazione di capacità diventa attiva:

    • Crea una politica di scalabilità pianificata per l'ASG che si allinei all'ora di inizio della prenotazione di Capacity Block. Per ulteriori informazioni, consulta Scheduled Scaling for Amazon EC2 Auto Scaling nella Amazon Auto EC2 Scaling User Guide.

    • Usa la console Amazon EKS o eks update-nodegroup-config per aggiornare la configurazione di scalabilità e impostare la dimensione desiderata del gruppo di nodi.

    • Usa Kubernetes Cluster Autoscaler. Per ulteriori informazioni, consulta Cluster Autoscaler on. AWS

  5. Il gruppo di nodi è ora pronto per la pianificazione di carichi di lavoro e Pod.

  6. Affinché i tuoi Pod vengano svuotati senza problemi prima della fine della prenotazione, Amazon EKS utilizza una politica di scalabilità pianificata per ridurre la dimensione del gruppo di nodi. 0 Questo ridimensionamento pianificato verrà impostato con il nome intitolato. Amazon EKS Node Group Capacity Scaledown Before Reservation End Ti consigliamo di non modificare o eliminare questa azione.

    Amazon EC2 inizia a chiudere le istanze 30 minuti prima della fine della prenotazione. Di conseguenza, Amazon EKS configurerà una riduzione programmata del gruppo di nodi 40 minuti prima della fine della prenotazione, al fine di eliminare i Pod in modo sicuro e corretto.