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à.
Costruire un'usanza AWS ParallelCluster AMI
Quando si utilizza l'interfaccia a riga di AWS ParallelCluster comando (CLI) o l'API, si pagano solo le AWS risorse create quando si creano o si aggiornano AWS ParallelCluster immagini e cluster. Per ulteriori informazioni, consulta AWS servizi usati da AWS ParallelCluster.
Importante
Se crei un'AMI personalizzata, devi ripetere i passaggi utilizzati per creare l'AMI personalizzata con ogni nuova AWS ParallelCluster versione.
Prima di continuare a leggere, ti consigliamo di rivedere prima la Azioni bootstrap personalizzate sezione. Determina se le modifiche che desideri apportare possono essere basate su script e supportate nelle versioni future. AWS ParallelCluster
Anche se la creazione di un'AMI personalizzata in generale non è l'ideale, ci sono scenari specifici in cui AWS ParallelCluster è necessario creare un'AMI personalizzata per. Questo tutorial spiega come creare un'AMI personalizzata per questi scenari.
Prerequisiti
-
AWS ParallelCluster è installato.
-
AWS CLI È installato e configurato.
-
Hai una coppia di chiavi Amazon EC2.
-
Hai un ruolo IAM con le autorizzazioni necessarie per eseguire la pcluster CLI e creare immagini.
Come personalizzare il AWS ParallelCluster AMI
Esistono due modi per creare un' AWS ParallelCluster AMI personalizzata. Uno di questi due metodi consiste nel creare una nuova AMI utilizzando la AWS ParallelCluster CLI. Un altro metodo richiede di apportare modifiche manuali per creare una nuova AMI disponibile sotto il tuo. Account AWS
Crea una personalizzata AWS ParallelCluster AMI
Se disponi di un'AMI e di un software personalizzati, puoi applicare le modifiche necessarie AWS ParallelCluster su di essi. AWS ParallelCluster si affida al servizio EC2 Image Builder per creare AMI personalizzate. Per ulteriori informazioni, consulta la Guida per l'utente di Image Builder.
Punti chiave:
-
Il processo dura circa 1 ora. Questo tempo può variare se ci sono altri Build/Componentsda installare in fase di compilazione.
-
L'AMI è contrassegnata con le versioni dei componenti principali. Questi includono il kernel, lo scheduler e il driver EFA. Un sottoinsieme delle versioni dei componenti è riportato anche nella descrizione dell'AMI.
-
A partire dalla AWS ParallelCluster versione 3.0.0, è possibile utilizzare un nuovo set di comandi CLI per gestire il ciclo di vita delle immagini. Sono inclusi build-image, list-images, describe-image e delete-image.
-
Questo metodo è ripetibile. È possibile rieseguirlo per mantenere aggiornate le AMI (ad esempio, gli aggiornamenti del sistema operativo) e quindi utilizzarle quando si aggiorna un cluster esistente.
Nota
Se utilizzi questo metodo nella partizione AWS cinese, potresti riscontrare errori di rete. Ad esempio, potresti visualizzare questi errori dal pcluster build-image comando quando scarica pacchetti da GitHub o da un repository del sistema operativo. In tal caso, ti consigliamo di utilizzare uno dei seguenti metodi alternativi:
-
Segui l'Modificare un AWS ParallelCluster AMIapproccio che ignora questo comando.
-
Crea l'immagine in un'altra partizione e regione, ad esempio
us-east-1, e poi store/restore spostala nella regione cinese. Per ulteriori informazioni, consulta Archiviazione e ripristino di un’AMI utilizzando S3 nella Guida per l’utente di Amazon EC2.
Fasi:
-
Configura Account AWS le tue credenziali in modo che il AWS ParallelCluster cliente possa effettuare chiamate alle operazioni AWS API per tuo conto. Per un elenco delle autorizzazioni richieste, consulta AWS Identity and Access Management autorizzazioni in AWS ParallelCluster.
-
Crea un file di configurazione di base dell'immagine di compilazione. Per fare ciò, specifica il InstanceType file da utilizzare per creare l'immagine e il ParentImage. Questi sono usati come punto di partenza per creare l'AMI. Per ulteriori informazioni sui parametri di compilazione opzionali, vedere Image Configuration.
Build: InstanceType:<BUILD_INSTANCE_TYPE>ParentImage:<BASE_AMI_ID> -
Usa il comando CLI pcluster build-image per creare un' AWS ParallelCluster AMI partendo dall'AMI che fornisci come base.
$pcluster build-image --image-idIMAGE_ID--image-configurationIMAGE_CONFIG.yaml--regionREGION{ "image": { "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.16.1" } }avvertimento
pcluster build-imageutilizza il VPC predefinito. Se si elimina il VPC predefinito utilizzando AWS Control Tower o AWS Landing Zone, l'ID della sottorete deve essere specificato nel file di configurazione dell'immagine. Per ulteriori informazioni, consulta SubnetId.Per un elenco di altri parametri, consulta la pagina di riferimento del pcluster build-image comando. I risultati del comando precedente sono i seguenti:
-
Viene creato uno CloudFormation stack in base alla configurazione dell'immagine. Lo stack include tutte le risorse EC2 Image Builder necessarie per la compilazione.
-
Le risorse create includono i AWS ParallelCluster componenti ufficiali di Image Builder a cui è possibile aggiungere componenti personalizzati di Image Builder. Per ulteriori informazioni, consulta Creare un componente personalizzato con Image Builder nella Guida per l'utente di EC2 Image Builder.
-
EC2 Image Builder avvia un'istanza di compilazione, applica il AWS ParallelCluster ricettario, installa lo stack AWS ParallelCluster software ed esegue le attività di configurazione necessarie. Il AWS ParallelCluster ricettario viene utilizzato per compilare e avviare il bootstrap. AWS ParallelCluster
-
L'istanza viene interrotta e da essa viene creata una nuova AMI.
-
Un'altra istanza viene lanciata dall'AMI appena creata. Durante la fase di test, EC2 Image Builder esegue i test definiti nei componenti di Image Builder.
-
Se la compilazione ha esito positivo, lo stack viene eliminato. Se la compilazione ha esito negativo, lo stack viene conservato e disponibile per l'ispezione.
-
-
È possibile monitorare lo stato del processo di compilazione eseguendo il comando seguente. Una volta completata la compilazione, puoi eseguirla per recuperare l'ID AMI fornito nella risposta.
$pcluster describe-image --image-idIMAGE_ID--regionREGION# BEFORE COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.amazonaws.com/parallelcluster/3.16.1/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?...", }, "imageId": "IMAGE_ID", "imagebuilderImageStatus": "BUILDING", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.16.1", "cloudformationStackTags": [ { "value": "3.16.1", "key": "parallelcluster:version" }, { "value": "IMAGE_ID", "key": "parallelcluster:image_name" }, ... ], "imageBuildLogsArn": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/imagebuilder/ParallelClusterImage-IMAGE_ID", "cloudformationStackCreationTime": "2022-04-05T21:36:26.176Z" }# AFTER COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.16.1/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.16.1" } -
Per creare il cluster, inserisci l'ID AMI nel CustomAmi campo della configurazione del cluster.
Risoluzione dei problemi e monitoraggio del processo di creazione dell'AMI
La creazione dell'immagine viene completata in circa un'ora. È possibile monitorare il processo eseguendo il pcluster describe-image comando o i comandi di recupero del registro.
$pcluster describe-image --image-idIMAGE_ID--regionREGION
Il build-image comando crea uno CloudFormation stack con tutte le risorse Amazon EC2 necessarie per creare l'immagine e avvia il processo EC2 Image Builder.
Dopo aver eseguito il build-image comando, è possibile recuperare gli eventi CloudFormation dello stack utilizzando. pcluster get-image-stack-events È possibile filtrare i risultati con il --query parametro per visualizzare gli ultimi eventi. Per ulteriori informazioni, vedere Filtraggio dell' AWS CLI output nella Guida per l'AWS Command Line Interface utente.
$pcluster get-image-stack-events --image-idIMAGE_ID--regionREGION--query "events[0]"{ "eventId": "ParallelClusterImage-CREATE_IN_PROGRESS-2022-04-05T21:39:24.725Z", "physicalResourceId": "arn:aws:imagebuilder:us-east-1:123456789012:image/parallelclusterimage-IMAGE_ID/3.16.1/1", "resourceStatus": "CREATE_IN_PROGRESS", "resourceStatusReason": "Resource creation Initiated", "resourceProperties": "{\"InfrastructureConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:infrastructure-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"ImageRecipeArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/parallelclusterimage-IMAGE_ID/3.16.1\",\"DistributionConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:distribution-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"Tags\":{\"parallelcluster:image_name\":\"IMAGE_ID\",\"parallelcluster:image_id\":\"IMAGE_ID\"}}", "stackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "stackName": "IMAGE_ID", "logicalResourceId": "ParallelClusterImage", "resourceType": "AWS::ImageBuilder::Image", "timestamp": "2022-04-05T21:39:24.725Z" }
Dopo circa 15 minuti, gli eventi dello stack vengono visualizzati nella voce degli eventi del registro relativa alla creazione di Image Builder. È ora possibile elencare i flussi di log delle immagini e monitorare i passaggi di Image Builder utilizzando pcluster get-image-log-events i comandi pcluster list-image-log-streams and.
$pcluster list-image-log-streams --image-id"3.16.1/1" ]IMAGE_ID--regionREGION\ --query 'logStreams[*].logStreamName'$pcluster get-image-log-events --image-idIMAGE_ID--regionREGION\ --log-stream-name 3.16.1/1 --limit 3{ "nextToken": "f/36295977202298886557255241372854078762600452615936671762", "prevToken": "b/36295977196879805474012299949460899222346900769983430672", "events": [ { "message": "ExecuteBash: FINISHED EXECUTION", "timestamp": "2022-04-05T22:13:26.633Z" }, { "message": "Document arn:aws:imagebuilder:us-east-1:123456789012:component/parallelclusterimage-test-abcd1234-ef56-gh78-ij90-1234abcd5678/3.16.1/1", "timestamp": "2022-04-05T22:13:26.741Z" }, { "message": "TOE has completed execution successfully", "timestamp": "2022-04-05T22:13:26.819Z" } ] }
Continuate a controllare con il describe-image comando finché non ne visualizzate lo BUILD_COMPLETE stato.
$pcluster describe-image --image-idIMAGE_ID--regionREGION{ "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.16.1/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.16.1" }
Se hai bisogno di risolvere un problema di creazione di un'AMI personalizzata, crea un archivio dei log delle immagini come descritto nei passaggi seguenti.
È possibile archiviare i log in un bucket Amazon S3 o in un file locale, a seconda del parametro. --output
$pcluster export-image-logs --image-idIMAGE_ID--regionREGION\ --bucketBUCKET_NAME--bucket-prefixBUCKET_FOLDER{ "url": "https://BUCKET_NAME.s3.us-east-1.amazonaws.com/BUCKET-FOLDER/IMAGE_ID-logs-202209071136.tar.gz?AWSAccessKeyId=..." }$pcluster export-image-logs --image-idIMAGE_ID\ --regionREGION--bucketBUCKET_NAME--bucket-prefixBUCKET_FOLDER--output-file /tmp/archive.tar.gz{ "path": "/tmp/archive.tar.gz" }
L'archivio contiene i flussi di CloudWatch log relativi al processo di Image Builder e CloudFormation agli eventi dello stack. L'esecuzione del comando potrebbe richiedere diversi minuti.
Gestione delle AMI personalizzate
A partire dalla AWS ParallelCluster versione 3.0.0, è stato aggiunto un nuovo set di comandi nella CLI per creare, monitorare e gestire il ciclo di vita dell'immagine. Per ulteriori informazioni sui comandi, vedere comandi pcluster. pcluster
Modificare un AWS ParallelCluster AMI
Questo metodo consiste nel modificare un' AWS ParallelCluster AMI ufficiale aggiungendovi delle personalizzazioni. Le AWS ParallelCluster AMI di base vengono aggiornate con le nuove versioni. Queste AMI dispongono di tutti i componenti necessari AWS ParallelCluster per il funzionamento una volta installate e configurate. Puoi iniziare con uno di questi come base.
Punti chiave:
-
Questo metodo è più veloce del build-image comando. Tuttavia, è un processo manuale e non ripetibile automaticamente.
-
Con questo metodo, non è possibile accedere ai comandi di recupero dei log e di gestione del ciclo di vita delle immagini disponibili tramite la CLI.
Fasi: