View a markdown version of this page

Exemplos de ações do ciclo de vida do nó para AWS PEÇAS - AWS PEÇAS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplos de ações do ciclo de vida do nó para AWS PEÇAS

Os exemplos a seguir usam o AWS CLI para configurar ações do ciclo de vida do nó. Você pode definir ações do ciclo de vida ao criar um grupo de nós de computação comcreate-compute-node-group, adicioná-las ou alterá-las em um grupo de nós de computação existente com. update-compute-node-group O --node-lifecycle-actions valor é o mesmo para os dois comandos.

Vários scripts em todos os estágios

Este exemplo combina scripts em ambos os estágios do ciclo de vida com diferentes políticas de execução e comportamentos de erro.

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

Comportamento de erro misto

Este exemplo usa scripts críticos e opcionais no mesmo estágio. O primeiro encerra o nó em caso de falha; o segundo continua.

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

Validação de integridade com uma soma de verificação

Adiciona uma SHA-256 soma de verificação para que o agente rejeite um script se seu conteúdo não corresponder.

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

Habilitar a atualização do script na reinicialização

Define scriptCachingPolicy comoREFRESH_ON_REBOOT. Essa UpdateComputeNodeGroup chamada é uma alteração de configuração, portanto, ela drena e substitui as instâncias existentes. Após a conclusão da substituição, as instâncias baixam novamente os scripts em cada reinicialização. Em seguida, você pode atualizar o conteúdo do script no Amazon S3 e as instâncias captam a alteração na próxima reinicialização sem nenhuma chamada de API adicional.

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

Migrando das ações de ParallelCluster bootstrap da AWS

Muitos scripts de AWS ParallelCluster bootstrap existentes funcionam como estão com as ações do ciclo de vida do AWS PCS. AWS O PCS fornece tratamento de erros por script (TERMINATE,STOP_SEQUENCE, ouCONTINUE) e controle de reinicialização (FIRST_BOOT_ONLYouEVERY_BOOT). O padrão do AWS PCS éFIRST_BOOT_ONLY. Para combinar ParallelCluster o comportamento (executar em cada inicialização), executionPolicy defina comoEVERY_BOOT.

AWS ParallelCluster

AWS PCS

OnNodeStart

nodeBootstrapped(é executado após a fase de configuração do AWS PCS, antesslurmd)

OnNodeConfigured

nodeReady(é executado após o registro do nó no controlador Slurm)

OnNodeUpdated

Sem equivalente ao AWS PCS