View a markdown version of this page

Exemples d'actions relatives au cycle de vie des nœuds pour AWS PIÈCES - AWS PIÈCES

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.

Exemples d'actions relatives au cycle de vie des nœuds pour AWS PIÈCES

Les exemples suivants utilisent AWS CLI pour configurer les actions du cycle de vie des nœuds. Vous pouvez définir des actions de cycle de vie lorsque vous créez un groupe de nœuds de calcul aveccreate-compute-node-group, ou lorsque vous les ajoutez ou modifiez un groupe de nœuds de calcul existant avecupdate-compute-node-group. La --node-lifecycle-actions valeur est la même pour les deux commandes.

Plusieurs scripts à travers les étapes

Cet exemple combine des scripts aux deux étapes du cycle de vie avec des politiques d'exécution et des comportements d'erreur différents.

aws pcs create-compute-node-group --region region \ --cluster-identifier my-cluster \ --compute-node-group-identifier my-cng \ --subnet-ids subnet-ExampleID1 \ --custom-launch-template id=lt-ExampleID1,version='1' \ --iam-instance-profile-arn=arn:InstanceProfile \ --scaling-config minInstanceCount=0,maxInstanceCount=10 \ --instance-configs instanceType=t3.large \ --node-lifecycle-actions '{ "stages": { "nodeBootstrapped": [ { "name": "Mount FSx Lustre", "scriptSource": { "scriptLocation": "s3://my-bucket/mount-fsx.sh" }, "arguments": ["fs-0abc123", "/scratch"], "executionPolicy": "EVERY_BOOT" }, { "name": "Join Active Directory", "scriptSource": { "scriptLocation": "s3://my-bucket/configure-ad.sh" }, "arguments": ["ad.example.com", "EXAMPLE"], "executionPolicy": "FIRST_BOOT_ONLY" } ], "nodeReady": [ { "name": "Configure CloudWatch logging", "scriptSource": { "scriptLocation": "s3://my-bucket/setup-cloudwatch.sh" }, "arguments": ["/aws/pcs/my-cluster"], "onError": "CONTINUE" } ] } }'

Comportement d'erreur mixte

Cet exemple utilise des scripts critiques et facultatifs au cours de la même étape. Le premier met fin au nœud en cas de défaillance ; le second continue.

aws pcs create-compute-node-group --region region \ --cluster-identifier my-cluster \ --compute-node-group-identifier my-cng \ --subnet-ids subnet-ExampleID1 \ --custom-launch-template id=lt-ExampleID1,version='1' \ --iam-instance-profile-arn=arn:InstanceProfile \ --scaling-config minInstanceCount=0,maxInstanceCount=10 \ --instance-configs instanceType=t3.large \ --node-lifecycle-actions '{ "stages": { "nodeBootstrapped": [ { "name": "Install required packages", "scriptSource": { "scriptLocation": "s3://my-bucket/install-packages.sh" }, "onError": "TERMINATE" }, { "name": "Install optional tools", "scriptSource": { "scriptLocation": "s3://my-bucket/install-optional.sh" }, "onError": "CONTINUE" } ] } }'

Validation de l'intégrité avec une somme de contrôle

Ajoute une SHA-256 somme de contrôle afin que l'agent rejette un script si son contenu ne correspond pas.

aws pcs update-compute-node-group \ --cluster-identifier my-cluster \ --compute-node-group-identifier my-cng \ --node-lifecycle-actions '{ "stages": { "nodeBootstrapped": [ { "name": "Mount EFS", "scriptSource": { "scriptLocation": "s3://my-bucket/mount-efs.sh", "checksum": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, "arguments": ["fs-12345678", "/shared"] } ] } }'

Activer l'actualisation du script au redémarrage

Définit scriptCachingPolicy surREFRESH_ON_REBOOT. Cet UpdateComputeNodeGroup appel constitue un changement de configuration. Il vide et remplace donc les instances existantes. Une fois le remplacement terminé, les instances retéléchargent les scripts à chaque redémarrage. Vous pouvez ensuite mettre à jour le contenu du script dans Amazon S3 et les instances prendront en compte la modification lors de leur prochain redémarrage sans autre appel d'API.

aws pcs update-compute-node-group \ --cluster-identifier my-cluster \ --compute-node-group-identifier my-cng \ --node-lifecycle-actions '{ "stages": { "nodeBootstrapped": [ { "name": "Mount EFS", "scriptSource": { "scriptLocation": "s3://my-bucket/mount-efs.sh" }, "arguments": ["fs-12345678", "/shared"], "executionPolicy": "EVERY_BOOT" } ] }, "scriptCachingPolicy": "REFRESH_ON_REBOOT" }'

Actions de migration depuis AWS ParallelCluster Bootstrap

De nombreux scripts d' AWS ParallelCluster amorçage existants fonctionnent tels quels avec les actions du cycle de vie du AWS PCS. AWS PCS permet de gérer les erreurs par script (TERMINATESTOP_SEQUENCE, ouCONTINUE) et de contrôler le redémarrage (FIRST_BOOT_ONLYouEVERY_BOOT). La valeur par défaut du AWS PCS estFIRST_BOOT_ONLY. Pour faire correspondre ParallelCluster le comportement (à exécuter à chaque démarrage), définissez executionPolicy surEVERY_BOOT.

AWS ParallelCluster

AWS PC

OnNodeStart

nodeBootstrapped(s'exécute après la phase de configuration du AWS PCS, avantslurmd)

OnNodeConfigured

nodeReady(s'exécute après l'enregistrement du nœud auprès du contrôleur Slurm)

OnNodeUpdated

Pas d'équivalent AWS PCS