View a markdown version of this page

Ejemplos de acciones del ciclo de vida de un nodo para AWS PC - AWS PIEZAS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejemplos de acciones del ciclo de vida de un nodo para AWS PC

Los siguientes ejemplos utilizan el AWS CLI para configurar las acciones del ciclo de vida de los nodos. Puedes definir las acciones del ciclo de vida al crear un grupo de nodos de procesamiento concreate-compute-node-group, o añadirlas o cambiarlas en un grupo de nodos de procesamiento existente conupdate-compute-node-group. El --node-lifecycle-actions valor es el mismo para ambos comandos.

Múltiples guiones en todas las etapas

Este ejemplo combina scripts de ambas etapas del ciclo de vida con diferentes políticas de ejecución y comportamientos de error.

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" } ] } }'

Comportamiento de error mixto

En este ejemplo se utilizan scripts críticos y opcionales en la misma fase. El primero termina el nodo en caso de error; el segundo continúa.

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" } ] } }'

Validación de la integridad con una suma de comprobación

Añade una SHA-256 suma de comprobación para que el agente rechace un script si su contenido no coincide.

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"] } ] } }'

Habilite la actualización del script al reiniciar

Se establece scriptCachingPolicy enREFRESH_ON_REBOOT. Esta UpdateComputeNodeGroup llamada es un cambio de configuración, por lo que agota y reemplaza las instancias existentes. Una vez finalizado el reemplazo, las instancias vuelven a descargar los scripts cada vez que se reinician. A continuación, puede actualizar el contenido de los scripts en Amazon S3 y las instancias recogerán el cambio en su siguiente reinicio sin necesidad de realizar ninguna otra llamada a la 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" }'

Migración desde las acciones de ParallelCluster arranque de AWS

Muchos scripts de AWS ParallelCluster arranque existentes funcionan tal cual con AWS las acciones del ciclo de vida de PCS. AWS PCS proporciona la gestión de errores (TERMINATESTOP_SEQUENCE, oCONTINUE) y el control de reinicio (FIRST_BOOT_ONLYo) por script. EVERY_BOOT El valor predeterminado de AWS PCS esFIRST_BOOT_ONLY. Para que coincida con ParallelCluster el comportamiento (se ejecuta en cada arranque), executionPolicy configúrelo enEVERY_BOOT.

AWS ParallelCluster

AWS PCS

OnNodeStart

nodeBootstrapped(se ejecuta después de la fase de configuración del AWS PCS, antesslurmd)

OnNodeConfigured

nodeReady(se ejecuta después de que el nodo se registre en el controlador Slurm)

OnNodeUpdated

¿No hay equivalente AWS en PCS