View a markdown version of this page

Beispiele für Aktionen im Knotenlebenszyklus für AWS STCK - AWS STCK

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Beispiele für Aktionen im Knotenlebenszyklus für AWS STCK

In den folgenden Beispielen wird der verwendet AWS CLI , um Aktionen im Knotenlebenszyklus zu konfigurieren. Sie können Lebenszyklusaktionen definierencreate-compute-node-group, wenn Sie eine Rechenknotengruppe mit erstellen oder sie zu einer vorhandenen Rechenknotengruppe mit hinzufügen oder ändernupdate-compute-node-group. Der --node-lifecycle-actions Wert ist für beide Befehle derselbe.

Mehrere Skripte in verschiedenen Stufen

In diesem Beispiel werden Skripts aus beiden Lebenszyklusphasen mit unterschiedlichen Ausführungsrichtlinien und Fehlerverhalten kombiniert.

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

Gemischtes Fehlerverhalten

In diesem Beispiel werden kritische und optionale Skripts in derselben Phase verwendet. Der erste beendet den Knoten bei einem Ausfall; der zweite fährt fort.

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

Überprüfung der Integrität mit einer Prüfsumme

Fügt eine SHA-256 Prüfsumme hinzu, sodass der Agent ein Skript ablehnt, wenn sein Inhalt nicht übereinstimmt.

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

Aktivieren Sie die Skriptaktualisierung beim Neustart

Setzt scriptCachingPolicy aufREFRESH_ON_REBOOT. Bei diesem UpdateComputeNodeGroup Aufruf handelt es sich um eine Konfigurationsänderung. Er entleert und ersetzt bestehende Instanzen. Nach Abschluss der Ersetzung laden die Instanzen bei jedem Neustart erneut Skripts herunter. Anschließend können Sie den Skriptinhalt in Amazon S3 aktualisieren, und die Instances übernehmen die Änderung bei ihrem nächsten Neustart ohne weiteren API-Aufruf.

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

Migration von ParallelCluster AWS-Bootstrap-Aktionen

Viele vorhandene AWS ParallelCluster Bootstrap-Skripte funktionieren unverändert mit AWS PCS-Lebenszyklusaktionen. AWS PCS bietet eine skriptspezifische Fehlerbehandlung (TERMINATESTOP_SEQUENCE, oderCONTINUE) und die Neustartsteuerung (FIRST_BOOT_ONLYoder). EVERY_BOOT Die AWS PCS-Standardeinstellung istFIRST_BOOT_ONLY. Um dem ParallelCluster Verhalten zu entsprechen (bei jedem Start ausführen), setzen Sie executionPolicy den Wert aufEVERY_BOOT.

AWS ParallelCluster

AWS STK.

OnNodeStart

nodeBootstrapped(läuft nach der AWS PCS-Konfigurationsphase, vorherslurmd)

OnNodeConfigured

nodeReady(läuft, nachdem sich der Knoten beim Slurm-Controller registriert hat)

OnNodeUpdated

Kein AWS PCS-Äquivalent