Execute trabalhos usando kubectl - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Execute trabalhos usando kubectl

Observe que você deve instalar o Kubeflow Training Operator nos clusters usando um gráfico Helm. Para obter mais informações, consulte Instale pacotes no EKS cluster da Amazon usando o Helm. Verifique se o plano de controle do Kubeflow Training Operator está configurado corretamente executando o comando a seguir.

kubectl get pods -n kubeflow

Isso deve retornar uma saída semelhante à seguinte.

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

Para enviar um trabalho de treinamento

Para executar um trabalho de treinamento, prepare o arquivo de configuração do trabalho e execute o kubectl applycomando da seguinte forma.

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

Para descrever um trabalho de treinamento

Para recuperar os detalhes do trabalho enviado ao EKS cluster, use o comando a seguir. Ele retorna informações do trabalho, como o tempo de envio do trabalho, o tempo de conclusão, o status do trabalho e os detalhes da configuração.

kubectl get -o yaml training-job -n kubeflow

Para interromper um trabalho de treinamento e excluir EKS recursos

Para interromper um trabalho de treinamento, use kubectl delete. Veja a seguir um exemplo de interrupção do trabalho de treinamento criado a partir do arquivo de configuraçãopytorch_job_simple.yaml.

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

Isso deve retornar a seguinte saída.

pytorchjob.kubeflow.org "training-job" deleted

Para ativar a retomada automática do trabalho

SageMaker HyperPod oferece suporte à funcionalidade de retomada automática de tarefas do Kubernetes, integrando-se ao plano de controle do Kubeflow Training Operator.

Certifique-se de que haja nós suficientes no cluster que tenham passado pela verificação de SageMaker HyperPod integridade. Os nós devem ter a mancha sagemaker.amazonaws.com/node-health-status definida como. Schedulable É recomendável incluir um seletor de nós no YAML arquivo de trabalho para selecionar nós com a configuração apropriada da seguinte forma.

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

O trecho de código a seguir é um exemplo de como modificar a YAML configuração de uma tarefa do Kubeflow para ativar a funcionalidade de retomada automática da PyTorch tarefa. Você precisa adicionar duas anotações e definir restartPolicy da seguinte OnFailure forma.

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

Para verificar o status de retomada automática do trabalho

Execute o comando a seguir para verificar o status da retomada automática do trabalho.

kubectl describe pytorchjob -n kubeflow <job-name>

Dependendo dos padrões de falha, você pode ver dois padrões de reinicialização do trabalho de treinamento do Kubeflow da seguinte maneira.

Padrão 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.

Padrão 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