Führen Sie Jobs aus mit kubectl - Amazon SageMaker

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.

Führen Sie Jobs aus mit kubectl

Beachten Sie, dass Sie Kubeflow Training Operator mithilfe eines Helm-Diagramms in den Clustern installieren sollten. Weitere Informationen finden Sie unter Installieren Sie Pakete auf dem EKS Amazon-Cluster mit Helm. Überprüfen Sie, ob die Steuerungsebene des Kubeflow Training Operators ordnungsgemäß eingerichtet ist, indem Sie den folgenden Befehl ausführen.

kubectl get pods -n kubeflow

Dies sollte eine Ausgabe ähnlich der folgenden zurückgeben.

NAME READY STATUS RESTARTS AGE training-operator-658c68d697-46zmn 1/1 Running 0 90s

Um einen Ausbildungsjob einzureichen

Um einen Trainingsjob auszuführen, bereiten Sie die Job-Konfigurationsdatei vor und führen Sie den kubectl applyBefehl wie folgt aus.

kubectl apply -f /path/to/training_job.yaml

Um einen Trainingsjob zu beschreiben

Verwenden Sie den folgenden Befehl, um die Details des an den EKS Cluster übermittelten Jobs abzurufen. Es gibt Auftragsinformationen wie die Uhrzeit der Auftragsübermittlung, die Abschlusszeit, den Auftragsstatus und die Konfigurationsdetails zurück.

kubectl get -o yaml training-job -n kubeflow

Um einen Schulungsjob zu beenden und EKS Ressourcen zu löschen

Um einen Trainingsjob zu beenden, verwenden Sie kubectl delete. Im Folgenden finden Sie ein Beispiel für das Beenden des Trainingsjobs, der aus der Konfigurationsdatei erstellt wurde. pytorch_job_simple.yaml

kubectl delete -f /path/to/training_job.yaml

Dies sollte die folgende Ausgabe zurückgeben.

pytorchjob.kubeflow.org "training-job" deleted

Um die automatische Wiederaufnahme von Jobs zu aktivieren

SageMaker HyperPod unterstützt die Funktion zur automatischen Wiederaufnahme von Jobs für Kubernetes-Jobs und ist in die Steuerebene des Kubeflow Training Operators integriert.

Stellen Sie sicher, dass im Cluster genügend Knoten vorhanden sind, die die Integritätsprüfung bestanden haben. SageMaker HyperPod Bei den Knoten sollte der Fehler auf sagemaker.amazonaws.com/node-health-status eingestellt seinSchedulable. Es wird empfohlen, einen Knotenselektor in die YAML Job-Datei aufzunehmen, um Knoten mit der entsprechenden Konfiguration wie folgt auszuwählen.

sagemaker.amazonaws.com/node-health-status: Schedulable

Der folgende Codeausschnitt ist ein Beispiel dafür, wie Sie eine PyTorch YAML Kubeflow-Jobkonfiguration ändern, um die Funktion zur automatischen Wiederaufnahme von Jobs zu aktivieren. Sie müssen zwei Anmerkungen hinzufügen und diese wie folgt einstellen. restartPolicy OnFailure

apiVersion: "kubeflow.org/v1" kind: PyTorchJob metadata: name: pytorch-simple namespace: kubeflow annotations: { // config for job auto resume sagemaker.amazonaws.com/enable-job-auto-resume: "true" sagemaker.amazonaws.com/job-max-retry-count: "2" } spec: pytorchReplicaSpecs: ...... Worker: replicas: 10 restartPolicy: OnFailure template: spec: nodeSelector: sagemaker.amazonaws.com/node-health-status: Schedulable

Um den Status der automatischen Wiederaufnahme des Jobs zu überprüfen

Führen Sie den folgenden Befehl aus, um den Status der automatischen Auftragsfortsetzung zu überprüfen.

kubectl describe pytorchjob -n kubeflow <job-name>

Abhängig von den Fehlermustern sehen Sie möglicherweise zwei Muster für den Neustart des Kubeflow-Trainingsjobs wie folgt.

Muster 1:

Start Time: 2024-07-11T05:53:10Z Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal SuccessfulCreateService 9m45s pytorchjob-controller Created service: pt-job-1-worker-0 Normal SuccessfulCreateService 9m45s pytorchjob-controller Created service: pt-job-1-worker-1 Normal SuccessfulCreateService 9m45s pytorchjob-controller Created service: pt-job-1-master-0 Warning PyTorchJobRestarting 7m59s pytorchjob-controller PyTorchJob pt-job-1 is restarting because 1 Master replica(s) failed. Normal SuccessfulCreatePod 7m58s (x2 over 9m45s) pytorchjob-controller Created pod: pt-job-1-worker-0 Normal SuccessfulCreatePod 7m58s (x2 over 9m45s) pytorchjob-controller Created pod: pt-job-1-worker-1 Normal SuccessfulCreatePod 7m58s (x2 over 9m45s) pytorchjob-controller Created pod: pt-job-1-master-0 Warning PyTorchJobRestarting 7m58s pytorchjob-controller PyTorchJob pt-job-1 is restarting because 1 Worker replica(s) failed.

Muster 2:

Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal SuccessfulCreatePod 19m pytorchjob-controller Created pod: pt-job-2-worker-0 Normal SuccessfulCreateService 19m pytorchjob-controller Created service: pt-job-2-worker-0 Normal SuccessfulCreatePod 19m pytorchjob-controller Created pod: pt-job-2-master-0 Normal SuccessfulCreateService 19m pytorchjob-controller Created service: pt-job-2-master-0 Normal SuccessfulCreatePod 4m48s pytorchjob-controller Created pod: pt-job-2-worker-0 Normal SuccessfulCreatePod 4m48s pytorchjob-controller Created pod: pt-job-2-master-0