Exécutez des tâches en utilisant kubectl - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exécutez des tâches en utilisant kubectl

Notez que vous devez installer Kubeflow Training Operator dans les clusters à l'aide d'un graphique Helm. Pour de plus amples informations, veuillez consulter Installer des packages sur le EKS cluster Amazon à l'aide de Helm. Vérifiez si le plan de contrôle de Kubeflow Training Operator est correctement configuré en exécutant la commande suivante.

kubectl get pods -n kubeflow

Cela devrait renvoyer un résultat similaire à ce qui suit.

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

Pour soumettre un poste de formation

Pour exécuter une tâche de formation, préparez le fichier de configuration de la tâche et exécutez la kubectl applycommande comme suit.

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

Pour décrire un poste de formation

Pour récupérer les détails de la tâche soumise au EKS cluster, utilisez la commande suivante. Il renvoie des informations sur les tâches telles que l'heure de soumission des tâches, le temps d'achèvement, l'état de la tâche, les détails de configuration.

kubectl get -o yaml training-job -n kubeflow

Pour arrêter une tâche de formation et supprimer EKS des ressources

Pour arrêter une tâche de formation, utilisez kubectl delete. Voici un exemple d'arrêt de la tâche de formation créée à partir du fichier de configurationpytorch_job_simple.yaml.

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

Cela devrait renvoyer le résultat suivant.

pytorchjob.kubeflow.org "training-job" deleted

Pour activer la reprise automatique des tâches

SageMaker HyperPod prend en charge la fonctionnalité de reprise automatique des tâches pour les tâches Kubernetes, en s'intégrant au plan de contrôle Kubeflow Training Operator.

Assurez-vous que le cluster compte un nombre suffisant de nœuds ayant passé avec succès le test SageMaker HyperPod de santé. La teinte des nœuds doit être sagemaker.amazonaws.com/node-health-status réglée sur. Schedulable Il est recommandé d'inclure un sélecteur de nœuds dans le YAML fichier de travail pour sélectionner les nœuds dotés de la configuration appropriée, comme suit.

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

L'extrait de code suivant est un exemple de modification de la YAML configuration d'une tâche Kubeflow pour activer la fonctionnalité de reprise automatique d'une PyTorch tâche. Vous devez ajouter deux annotations et restartPolicy définir OnFailure comme suit.

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

Pour vérifier l'état de reprise automatique des tâches

Exécutez la commande suivante pour vérifier l'état de la reprise automatique des tâches.

kubectl describe pytorchjob -n kubeflow <job-name>

En fonction des types d'échec, vous pouvez observer deux modèles de redémarrage des tâches d'entraînement Kubeflow, comme suit.

Motif 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.

Motif 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