View a markdown version of this page

Aktualisieren Sie die Scheduler-Version eines AWS PCS-Cluster - AWS STK.

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.

Aktualisieren Sie die Scheduler-Version eines AWS PCS-Cluster

Gehen Sie wie folgt vor, um die Scheduler-Version auf Ihrem Cluster zu aktualisieren. Je nachdem, ob Sie eine Jobunterbrechung tolerieren können, gibt es zwei Optionen. Weitere Informationen zur Auswahl zwischen Optionen finden Sie unterAktualisierung der Scheduler-Version eines Clusters in AWS STK..

Option 1: Fortlaufende Aktualisierung

Die Steuerung wird aktualisiert, während die Flotte weiterläuft. Bestehende Knoten verwenden weiterhin die vorherige Slurm-Version, bis sie leer sind und ersetzt werden. Neue Knoten, die nach dem Update gestartet wurden, verwenden die Zielversion. Laufende Jobs werden nicht unterbrochen.

Wann sollte verwendet werden:

  • Der Cluster-Controller befindet sich auf Slurm-Version 24.05 oder höher.

  • Sie können AMIs bereitstellen, die sowohl die aktuelle als auch die Ziel-Slurm-Version enthalten.

Schritt 0 — Überprüfen Sie den Startstatus

Auf Ihrem Cluster wird die Controller-Version „A“ (z. B. 24.11) ausgeführt und Sie möchten auf Version „B“ migrieren (z. B. 25.11). Bestätigen Sie, dass auf allen Rechenknoten in Ihrer Flotte dieselbe Hauptversion ausgeführt wird, indem Sie diesen Befehl von einem Clusterknoten aus verwenden:

scontrol show nodes | grep "Version=" # Example output: # NodeAddr=compute-1 NodeHostName=compute-1 Version=24.11.7 # NodeAddr=compute-2 NodeHostName=compute-2 Version=24.11.7

Bestätigen Sie die Version des AWS PCS-Agenten auf einem Rechenknoten. Stellen Sie mit Systems Manager Connect zum Knoten her und überprüfen Sie das Bootstrap-Protokoll:

grep "PCS Agent version" /var/log/amazon/pcs/bootstrap.log | tail -1 # Example output: # /opt/aws/pcs/bin/pcs_bootstrap_init.sh: INFO: Bootstrap starting with PCS Agent version: 1.3.2-1

Für laufende Updates ist AWS PCS-Agent Version 1.4.0 oder höher auf allen Compute-Knoten-AMIs erforderlich. Weitere Informationen finden Sie unter AWS Versionen von PCS-Agenten.

Schritt 1 — Bereiten Sie die AMIs mit zwei Versionen vor und führen Sie sie ein

Erstellen oder identifizieren Sie AMIs, die sowohl Slurm Version A als auch Version B und den neuesten AWS PCS-Agenten enthalten.

  • Sie können die neuesten PCS-ready DLAMIs verwenden. Solche AMIs werden mit den letzten drei unterstützten Slurm-Versionen geliefert. Weitere Informationen finden Sie unter Verwenden von PCS-ready DLAMI mit AWS STK..

  • Sie können ein benutzerdefiniertes AMI erstellen, indem Sie den Installationsschritten für Slurm-Pakete und AWS PCS-Agenten folgen. Weitere Informationen finden Sie unter Benutzerdefinierte Amazon Machine Images (AMIs) für AWS PCS.

  • Sie können kein AWS PCS-Beispiel-AMI verwenden. Solche AMIs sind nicht für die Produktion konzipiert und enthalten derzeit nur eine einzige Slurm-Version.

Anmerkung

Wenn Ihr AMI mehr als zwei Slurm-Versionen enthält, wählt AWS PCS automatisch die Version aus, die zum Controller passt. Die Installation zusätzlicher Versionen verursacht keine Probleme.

Sobald die AMIs bereit sind:

  1. Rufen Sie jede Compute-Knotengruppe UpdateComputeNodeGroup auf, um das neue Dual-Versions-AMI einzurichten. Die Knoten werden von AWS PCS in DRAIN gesetzt und auf das neue AMI migriert.

  2. Warten Sie, bis ausgelastete Knoten ihre Aufgaben abgeschlossen, beendet und durch Knoten ersetzt wurden, die das neue Zwei-Versions-AMI verwenden. Überprüfen Sie, ob alle EC2-Instances im Cluster das neue AMI verwenden, mit:

    aws ec2 describe-instances \ --filters "Name=tag:aws:pcs:cluster-id,Values=cluster-id" \ --query "Reservations[].Instances[].[InstanceId,ImageId,State.Name]" \ --output table

Schritt 2 — Aktualisieren Sie den Cluster-Controller

Rufen Sie anUpdateCluster, scheduler.version wenn Sie auf Version B eingestellt sind.

AWS Management Console
  1. Öffnen Sie die AWS PCS-Konsole unter https://console.aws.amazon.com/pcs/.

  2. Klicken Sie im Navigationsbereich auf Cluster.

  3. Wählen Sie den zu aktualisierenden Cluster aus und klicken Sie auf Bearbeiten.

  4. Wählen Sie unter Clusterdetails die Ziel-Scheduler-Version aus der Scheduler-Dropdown-Liste aus.

  5. Wählen Sie Update aus, um das Versionsupdate einzureichen.

  6. Überwachen Sie den Clusterstatus. Der Cluster wird wie UPDATING während der Aktualisierung angezeigt und kehrt zum ACTIVE Zeitpunkt der Fertigstellung zurück. Das Update ist in der Regel in 5—15 Minuten abgeschlossen.

AWS CLI
aws pcs update-cluster \ --cluster-identifier cluster-id \ --scheduler version=25.11

Warten Sie, bis der Cluster zu zurückgekehrt ist. ACTIVE Das Update ist in der Regel in 5—15 Minuten abgeschlossen.

Während dieses Vorgangs ist der Controller kurzzeitig nicht verfügbar:

  • Die Ausführung von Jobs auf Rechenknoten wird fortgesetzt.

  • Neue Job-Übermittlungen und Scheduler-Befehle sind erst verfügbar, wenn das Update abgeschlossen ist.

  • Die automatische Skalierung wird angehalten, bis der Cluster zu zurückkehrt. ACTIVE

Nach dem Update befindet sich die Rechenflotte in einem gemischten Zustand: Knoten, die vor dem Update ausgeführt wurden, verwenden weiterhin Slurm-Version Aslurmd; neue Knoten verwenden Slurm-Version B. Dies ist zu erwarten.

Anmerkung

Fügen Sie keine spezifischen Slurm-Einstellungen für Version B hinzu, solange die Flotte noch Knoten der Version A enthält. Die Konfiguration wird an alle Knoten verteilt; die alte Version erkennt slurmd möglicherweise keine neuen Parameter.

Wenn der Cluster nicht zu ACTIVE oder UPDATE_FAILED innerhalb von 30 Minuten zurückkehrt, wenden Sie sich an den AWS Support, um Unterstützung zu erhalten.

Schritt 3 — Knoten entleeren, auf denen noch Slurm-Version A läuft

Identifizieren und entleeren Sie Knoten, die sich noch in der Vorgängerversion befinden. Führen Sie von einem Knoten des Clusters aus:

scontrol show nodes | grep "Version=" scontrol update NodeName=node State=DRAIN Reason="Slurm version update"

Sobald ausgelastete Knoten ihre aktuellen Jobs beendet haben, beenden sie und werden durch Knoten auf Slurm-Version B ersetzt.

Schritt 4 — Stellen Sie sicher, dass die Flotte auf Slurm-Version B konsistent ist

Bestätigen Sie, dass alle Knoten Version B melden. Führen Sie von einem Knoten des Clusters aus:

scontrol show nodes | grep "Version="

Alle Knoten sollten jetzt Slurm-Version B melden. Das Update ist abgeschlossen.

Option 2: recyceln Full-fleet

Die gesamte Flotte wird beendet, bevor der Controller aktualisiert wird, und dann von einem neuen AMI mit der Ziel-Slurm-Version wieder hochskaliert. Dieses Verfahren ist einfacher, erfordert jedoch, dass alle Knoten und laufenden Jobs beendet werden.

Wann sollte Folgendes verwendet werden:

  • Sie können keine AMIs bereitstellen, auf denen beide Slurm-Versionen installiert sind.

  • Der Cluster-Controller hat Version 23.11 (Option 1 ist für 23.11-Cluster nicht verfügbar).

Anmerkung

Wenn die gesamte Flotte auf einmal eingestellt wird, steigt die Wahrscheinlichkeit, dass bei der Backup-Skalierung Fehler aufgrund unzureichender Kapazitäten auftreten. Erwägen Sie die Nutzung reservierter Kapazitäten oder die Planung außerhalb der Spitzenzeiten.

Schritt 0 — Überprüfen Sie den Startstatus

Auf Ihrem Cluster wird die Controller-Version „A“ (z. B. 24.11) ausgeführt und Sie möchten auf Version „B“ migrieren (z. B. 25.11). Bestätigen Sie, dass auf allen Rechenknoten in Ihrer Flotte dieselbe Hauptversion ausgeführt wird, indem Sie diesen Befehl von einem Clusterknoten aus verwenden:

scontrol show nodes | grep "Version=" # Example output: # NodeAddr=compute-1 NodeHostName=compute-1 Version=24.11.7 # NodeAddr=compute-2 NodeHostName=compute-2 Version=24.11.7

Bestätigen Sie die Version des AWS PCS-Agenten auf einem Rechenknoten. Stellen Sie mit Systems Manager Connect zum Knoten her und überprüfen Sie das Bootstrap-Protokoll:

grep "PCS Agent version" /var/log/amazon/pcs/bootstrap.log | tail -1 # Example output: # /opt/aws/pcs/bin/pcs_bootstrap_init.sh: INFO: Bootstrap starting with PCS Agent version: 1.3.2-1

Verwenden Sie den neuesten AWS PCS-Agenten auf Ihren Ziel-AMIs. Weitere Informationen finden Sie unter AWS Versionen von PCS-Agenten.

Schritt 1 — Bereiten Sie die Ziel-AMIs vor

Erstellen oder identifizieren Sie AMIs, die Slurm-Version B und den neuesten AWS PCS-Agenten enthalten.

  • Sie können die neuesten PCS-ready DLAMIs verwenden. Solche AMIs werden mit den letzten drei unterstützten Slurm-Versionen geliefert. Weitere Informationen finden Sie unter Verwenden von PCS-ready DLAMI mit AWS STK..

  • Sie können ein benutzerdefiniertes AMI erstellen, indem Sie den Installationsschritten für Slurm-Pakete und AWS PCS-Agenten folgen. Weitere Informationen finden Sie unter Benutzerdefinierte Amazon Machine Images (AMIs) für AWS PCS.

  • Die Verwendung des AWS PCS-Beispiel-AMI wird nicht empfohlen. Solche AMIs sind nicht für die Produktion konzipiert.

Schritt 2 — Verkleinern Sie die gesamte Flotte

Notieren Sie das aktuelle minNodeCount und maxNodeCount für jede Rechenknotengruppe — diese stellen Sie in Schritt 4 wieder her.

for cng in $(aws pcs list-compute-node-groups --cluster-identifier cluster-id --query "computeNodeGroups[].id" --output text); do aws pcs get-compute-node-group \ --cluster-identifier cluster-id \ --compute-node-group-identifier "$cng" \ --query "computeNodeGroup.{Id:id,AmiId:amiId,Min:scalingConfiguration.minInstanceCount,Max:scalingConfiguration.maxInstanceCount}" \ --output table done
Warnung

Der folgende Vorgang beendet alle laufenden Knoten und die Jobs auf ihnen.

Setze minNodeCount und maxNodeCount 0 auf für jede Compute-Knotengruppe:

aws pcs update-compute-node-group \ --cluster-identifier cluster-id \ --compute-node-group-identifier cng-id \ --scaling-configuration '{"minNodeCount": 0, "maxNodeCount": 0}'

Stellen Sie sicher, dass keine Instanzen ausgeführt werden, die mit Ihrem Cluster aws:pcs:cluster-id übereinstimmen, bevor Sie fortfahren:

aws ec2 describe-instances \ --filters "Name=tag:aws:pcs:cluster-id,Values=cluster-id" \ --query "Reservations[].Instances[].[InstanceId,ImageId,State.Name]" \ --output table

Schritt 3 — Aktualisieren Sie den Cluster-Controller

AWS Management Console
  1. Öffnen Sie die AWS PCS-Konsole unter https://console.aws.amazon.com/pcs/.

  2. Klicken Sie im Navigationsbereich auf Cluster.

  3. Wählen Sie den zu aktualisierenden Cluster aus und klicken Sie auf Bearbeiten.

  4. Wählen Sie unter Clusterdetails die Ziel-Scheduler-Version aus der Scheduler-Dropdown-Liste aus.

  5. Wählen Sie Update aus, um das Versionsupdate einzureichen.

  6. Überwachen Sie den Clusterstatus. Der Cluster wird wie UPDATING während der Aktualisierung angezeigt und kehrt zum ACTIVE Zeitpunkt der Fertigstellung zurück. Das Update ist in der Regel in 5—15 Minuten abgeschlossen.

AWS CLI
aws pcs update-cluster \ --cluster-identifier cluster-id \ --scheduler version=25.11

Warten Sie, bis der Cluster zu zurückgekehrt ist. ACTIVE Das Update ist in der Regel in 5—15 Minuten abgeschlossen.

Wenn der Cluster nicht zu ACTIVE oder UPDATE_FAILED innerhalb von 30 Minuten zurückkehrt, wenden Sie sich an den AWS Support, um Unterstützung zu erhalten.

Schritt 4 — Compute-Knotengruppen aktualisieren und Kapazität wiederherstellen

Legen Sie für jede Rechenknotengruppe das neue AMI fest und stellen Sie die ursprünglichen Mindest- und Höchstkapazitätsgrenzen wieder her:

aws pcs update-compute-node-group \ --cluster-identifier cluster-id \ --compute-node-group-identifier cng-id \ --ami-id new-ami-id \ --scaling-configuration '{"minNodeCount": previous-min, "maxNodeCount": previous-max}'

Der Cluster wird wieder hochskaliert. Auf allen neuen Knoten wird Slurm Version B mit dem neuesten AWS PCS-Agenten ausgeführt.

Beispiel: Aktualisierung über mehrere Versionen hinweg

Wenn sich die Zielversion außerhalb des Kompatibilitätsfensters Ihrer aktuellen Version befindet, müssen Sie den Controller durch eine oder mehrere Zwischenversionen verschieben und ihn Schritt für Schritt aktualisieren. Jeder Hop muss auf eine unterstützte Version innerhalb des Kompatibilitätsfensters der aktuellen Controller-Version abzielen.

Da die Flotte vor der Aktualisierung des Controllers auf Null Option 2: recyceln Full-fleet skaliert wird, laufen keine Rechenknoten, während der Controller zwischen den Versionen wechselt. Dadurch können Ihre AMIs die endgültige Zielversion direkt verwenden — nur das Controller-Update (Schritt 3) wird für jeden Hop wiederholt.

Im folgenden Beispiel wird ein Cluster mithilfe des Verfahrens Option 2 von 23.11 auf 25.11 aktualisiert. 23.11 liegt außerhalb des Kompatibilitätsfensters von 25.11, sodass der Controller in zwei Hops aktualisiert wird (23.11 auf 25.05, dann 25.05 auf 25.11). Folgen Sie den Schritten von Option 2, wobei Schritt 3 in ein Update pro Hop aufgeteilt wird:

  1. Schritt 1 — Bereiten Sie die Ziel-AMIs vor. Erstellen oder identifizieren Sie AMIs mit der endgültigen Version (25.11) und dem neuesten AWS PCS-Agenten. Siehe Schritt 1 — Bereiten Sie die Ziel-AMIs vor.

  2. Schritt 2 — Verkleinern Sie die gesamte Flotte. Erfassen Sie die aktuelle Kapazität (sieheSchritt 2 — Verkleinern Sie die gesamte Flotte) und setzen Sie dann jede Rechenknotengruppe auf Null.

    aws pcs update-compute-node-group \ --cluster-identifier my-cluster \ --compute-node-group-identifier my-cng \ --scaling-configuration '{"minNodeCount": 0, "maxNodeCount": 0}'
  3. Schritt 3a — Aktualisieren Sie den Controller von 23.11 auf 25.05. Warten Sie, bis der Cluster zu zurückgekehrt ist. ACTIVE

    aws pcs update-cluster --cluster-identifier my-cluster \ --scheduler version=25.05
  4. Schritt 3b — Aktualisieren Sie den Controller von 25.05 auf 25.11. Warten Sie, bis der Cluster zu zurückgekehrt ist. ACTIVE

    aws pcs update-cluster --cluster-identifier my-cluster \ --scheduler version=25.11
  5. Schritt 4 — Compute-Knotengruppen aktualisieren und Kapazität wiederherstellen. Legen Sie das 25.11-AMI für jede Rechenknotengruppe fest und stellen Sie die ursprünglichen Kapazitätsgrenzen wieder her (sieheSchritt 4 — Compute-Knotengruppen aktualisieren und Kapazität wiederherstellen).

    aws pcs update-compute-node-group \ --cluster-identifier my-cluster \ --compute-node-group-identifier my-cng \ --ami-id ami-0123456789abcdef0 \ --scaling-configuration '{"minNodeCount": previous-min, "maxNodeCount": previous-max}'
Anmerkung

Jeder Controller-Hop muss auf einer Version landen, die innerhalb des Kompatibilitätsfensters der vorherigen Version liegt. Informationen zu gültigen Zwischenversionen finden Sie unterVersionskompatibilität. Die Flotte bleibt bis zu den Schritten 3a und 3b auf Null, sodass keine AMI-Zwischenaktualisierungen erforderlich sind.