Häufig gestellte Fragen zur Slurm-REST-API in AWS PCS - AWS PCS

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.

Häufig gestellte Fragen zur Slurm-REST-API in AWS PCS

In diesem Abschnitt werden häufig gestellte Fragen zur Slurm-REST-API in AWS PCS beantwortet.

Was ist die Slurm-REST-API?

Die Slurm-REST-API ist eine HTTP-Schnittstelle, die es Ihnen ermöglicht, programmgesteuert mit dem Slurm-Workload-Manager zu interagieren. Sie können Standard-HTTP-Methoden wie GET, POST und DELETE verwenden, um Jobs einzureichen, den Clusterstatus zu überwachen und Ressourcen zu verwalten, ohne dass Sie über die Befehlszeile auf den Cluster zugreifen müssen.

Kann ich Tokens verwenden, die von generiert wurden? scontrol token

Nein, die scontrol token Standardausgabe ist nicht mit AWS PCS kompatibel. Die PCS Slurm REST-API benötigt erweiterte JWT-Token, die spezifische Identitätsansprüche enthalten, darunter username (sun), POSIX-Benutzer-ID (uid) und group IDs (). gids Bei Standard-Slurm-Token fehlen diese erforderlichen Ansprüche und sie werden von der API abgelehnt.

Kann ich von außerhalb meiner VPC auf die API zugreifen?

Nein, auf den REST-API-Endpunkt kann nur von Ihrer VPC aus über die private IP-Adresse des Slurm-Controllers zugegriffen werden. Um den externen Zugriff zu ermöglichen, implementieren Sie AWS Dienste wie Application Load Balancer mit VPC Link, API Gateway oder richten Sie VPC-Peering- oder VPN-Verbindungen für sichere Konnektivität ein.

Warum verwendet die API HTTP statt HTTPS?

Die Slurm-REST-API soll ein interner Endpunkt innerhalb des privaten Netzwerks Ihres Clusters sein. Für Produktionsbereitstellungen, die eine Verschlüsselung erfordern, können Sie die SSL/TLS Terminierung auf einer höheren Ebene in Ihrer Architektur implementieren, z. B. über ein API-Gateway, einen Load Balancer oder einen Reverse-Proxy.

Wie kontrolliere ich den Zugriff auf die REST-API?

Konfigurieren Sie die Sicherheitsgruppenregeln Ihres Clusters, um den Zugriff auf Port 6820 auf dem Slurm-Controller einzuschränken. Legen Sie Regeln für eingehenden Datenverkehr fest, um Verbindungen nur von vertrauenswürdigen IP-Bereichen oder bestimmten Quellen innerhalb Ihrer VPC zuzulassen und unbefugten Zugriff auf den API-Endpunkt zu blockieren.

Wie rotiere ich den JWT-Signaturschlüssel?

Versetzen Sie Ihren Cluster in den Wartungsmodus ohne aktive Instances und initiieren Sie dann die Schlüsselrotation über AWS Secrets Manager. Aktivieren Sie nach Abschluss der Rotation die Warteschlangen erneut. Alle vorhandenen JWT-Token werden ungültig und müssen mit dem neuen Signaturschlüssel von Secrets Manager neu generiert werden.

Muss die Slurm-Buchhaltung aktiviert sein, um die REST-API verwenden zu können?

Nein, die Slurm-Buchhaltung ist für grundlegende REST-API-Operationen wie die Einreichung und Überwachung von Jobs nicht erforderlich. Für den gesamten /slurmdb Endpunkt muss die Buchhaltung jedoch aktiv sein.

Welche Tools von Drittanbietern funktionieren mit der AWS PCS-REST-API?

Viele bestehende Slurm-REST-API-Clients sollten mit AWS PCS funktionieren, einschließlich Slurm Exporter für Prometheus und benutzerdefinierten Anwendungen SlurmWeb, die dem Standard-Slurm-REST-API-Format folgen. Tools, die auf die Authentifizierung angewiesen sind, müssen jedoch geändert werden, damit sie mit scontrol token den PCS JWT-Anforderungen funktionieren. AWS

Fallen zusätzliche Kosten für die Nutzung der REST-API an?

Nein, es fallen keine zusätzlichen Gebühren für die Aktivierung oder Nutzung der Slurm-REST-API-Funktion an. Sie zahlen wie gewohnt nur für die zugrunde liegenden Cluster-Ressourcen.

Wie kann ich Fehler bei der REST-API beheben?
  • Probleme mit der Netzwerkkonnektivität

    Wenn Sie den API-Endpunkt nicht erreichen können, werden bei HTTP-Anfragen an den Cluster-Controller Verbindungstimeouts oder Fehler „Verbindung verweigert“ angezeigt.

    Was zu tun ist: Stellen Sie sicher, dass sich Ihr Client in derselben VPC befindet oder über ein ordnungsgemäßes Netzwerk-Routing verfügt, und stellen Sie sicher, dass Ihre Sicherheitsgruppe HTTP-Verkehr auf Port 6820 von Ihrer Quell-IP oder Ihrem Quellsubnetz zulässt.

  • Probleme mit der Slurm-REST-Authentifizierung

    Wenn Ihr JWT-Token ungültig, abgelaufen oder falsch signiert ist, geben API-Anfragen im Fehlerfeld der Antwort „Protokollauthentifizierungsfehler“ zurück.

    Beispiel für eine Fehlermeldung:

    { "errors": [ { "description": "Batch job submission failed", "error_number": 1007, "error": "Protocol authentication error", "source": "slurm_submit_batch_job()" } ] }

    Was zu tun ist: Vergewissern Sie sich, dass Ihr JWT-Token richtig formatiert, nicht abgelaufen und mit dem richtigen Schlüssel von Secrets Manager signiert ist. Stellen Sie sicher, dass das Token korrekt formatiert ist und die erforderlichen Ansprüche enthält und dass Sie das richtige Authentifizierungs-Header-Format verwenden.

  • Job kann nach dem Absenden nicht ausgeführt werden

    Wenn Ihr JWT-Token gültig ist, aber eine falsche interne Struktur oder einen falschen Inhalt enthält, sind Jobs möglicherweise in den Status pausiert (PD) mit einem Ursachencode übergegangen. JobAdminHead Verwenden Siescontrol show job <job-id>, um den Job zu überprüfen — Sie werden sehenJobState=PENDING, Reason=JobHeldAdmin, und. SystemComment=slurm_cred_create failure, holding job

    Was zu tun ist: Die Hauptursache können falsche Werte in JWT sein. Stellen Sie sicher, dass das Token ordnungsgemäß strukturiert ist und die erforderlichen Ansprüche gemäß der PCS-Dokumentation enthält.

  • Probleme mit Zugriffsrechten für Arbeitsverzeichnisse

    Wenn die in Ihrem JWT angegebene Benutzeridentität keine Schreibberechtigungen für das Arbeitsverzeichnis des Jobs hat, schlägt der Job mit Berechtigungsfehlern fehl, ähnlich wie bei der Verwendung sbatch --chdir mit einem Verzeichnis, auf das nicht zugegriffen werden kann.

    Was zu tun ist: Stellen Sie sicher, dass der in Ihrem JWT-Token angegebene Benutzer über die entsprechenden Berechtigungen für das Arbeitsverzeichnis des Jobs verfügt.

  • Haben Sie immer noch Probleme?

    1. Lesen Sie die Dokumentation von SchedMD zur REST-API-Spezifikation.

    2. Ausführlichere Informationen zu Fehlern finden Sie in den Slurm-Controller-Protokollen (weitere Informationen finden Sie unterDer Scheduler protokolliert in AWS PCS).