

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menjalankan pekerjaan menggunakan `kubectl`
<a name="sagemaker-hyperpod-eks-run-jobs-kubectl"></a>

**catatan**  
Resume otomatis pekerjaan pelatihan memerlukan versi rilis Operator Pelatihan Kubeflow`1.7.0`,`1.8.0`, atau. `1.8.1`

Perhatikan bahwa Anda harus menginstal Kubeflow Training Operator di cluster menggunakan bagan Helm. Untuk informasi selengkapnya, lihat [Menginstal paket di cluster Amazon EKS menggunakan Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md). Verifikasi apakah bidang kontrol Operator Pelatihan Kubeflow telah diatur dengan benar dengan menjalankan perintah berikut.

```
kubectl get pods -n kubeflow
```

Ini harus mengembalikan output yang mirip dengan yang berikut ini.

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

**Untuk mengirimkan pekerjaan pelatihan**

Untuk menjalankan pekerjaan pelatihan, siapkan file konfigurasi pekerjaan dan jalankan [https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply)perintah sebagai berikut.

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

**Untuk menggambarkan pekerjaan pelatihan**

Untuk mengambil rincian pekerjaan yang dikirimkan ke cluster EKS, gunakan perintah berikut. Ini mengembalikan informasi pekerjaan seperti waktu pengiriman pekerjaan, waktu penyelesaian, status pekerjaan, detail konfigurasi.

```
kubectl get -o yaml training-job -n kubeflow
```

**Untuk menghentikan pekerjaan pelatihan dan menghapus sumber daya EKS**

Untuk menghentikan pekerjaan pelatihan, gunakan kubectl delete. Berikut ini adalah contoh menghentikan pekerjaan pelatihan yang dibuat dari file konfigurasi`pytorch_job_simple.yaml`.

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

Ini harus mengembalikan output berikut.

```
pytorchjob.kubeflow.org "training-job" deleted
```

**Untuk mengaktifkan resume pekerjaan secara otomatis**

SageMaker HyperPod mendukung fungsi resume otomatis pekerjaan untuk pekerjaan Kubernetes, terintegrasi dengan bidang kontrol Operator Pelatihan Kubeflow.

Pastikan ada node yang cukup di cluster yang telah lulus pemeriksaan SageMaker HyperPod kesehatan. Node harus memiliki taint yang `sagemaker.amazonaws.com/node-health-status` disetel ke`Schedulable`. Disarankan untuk menyertakan pemilih node dalam file YAMM pekerjaan untuk memilih node dengan konfigurasi yang sesuai sebagai berikut.

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

Cuplikan kode berikut adalah contoh cara memodifikasi konfigurasi YAMM pekerjaan Kubeflow untuk mengaktifkan PyTorch fungsionalitas resume pekerjaan secara otomatis. Anda perlu menambahkan dua anotasi dan `restartPolicy` mengatur `OnFailure` sebagai berikut.

```
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
```

**Untuk memeriksa status resume otomatis pekerjaan**

Jalankan perintah berikut untuk memeriksa status resume otomatis pekerjaan.

```
kubectl describe pytorchjob -n kubeflow <job-name>
```

Bergantung pada pola kegagalannya, Anda mungkin melihat dua pola pekerjaan pelatihan Kubeflow dimulai kembali sebagai berikut.

**Pola 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.
```

**Pola 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
```