

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

# Buat NodeClass
<a name="sagemaker-hyperpod-eks-autoscaling-nodeclass"></a>

**penting**  
Anda harus mulai dengan 0 node di grup instans Anda dan biarkan Karpenter menangani penskalaan otomatis. Jika Anda mulai dengan lebih dari 0 node, Karpenter akan menskalakannya menjadi 0.

Kelas node (`NodeClass`) mendefinisikan setelan tingkat infrastruktur yang berlaku untuk grup node di kluster Amazon EKS Anda, termasuk konfigurasi jaringan, pengaturan penyimpanan, dan penandaan sumber daya. A `HyperPodNodeClass` adalah kustom `NodeClass` yang memetakan ke grup instans yang telah dibuat sebelumnya SageMaker HyperPod, menentukan batasan di sekitar jenis instance dan Availability Zone mana yang didukung untuk keputusan penskalaan otomatis Karpenter.

**Pertimbangan untuk membuat kelas node**
+ Anda dapat menentukan hingga 10 grup instans dalam file`NodeClass`.
+ Saat menggunakan partisi GPU dengan MIG (Multi-Instance GPU), Karpenter dapat secara otomatis menyediakan node dengan grup instance berkemampuan MiG. Pastikan grup instans Anda menyertakan tipe instans yang didukung MiG (ml.p4d.24xlarge, ml.p5.48xlarge, atau ml.p5e/p5en.48xlarge) dan konfigurasikan label MIG yang sesuai selama pembuatan klaster. Untuk informasi selengkapnya tentang mengonfigurasi partisi GPU, lihat. [Menggunakan partisi GPU di Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)
+ Jika label kustom diterapkan ke grup instance, Anda dapat melihatnya di `desiredLabels` bidang saat menanyakan `HyperpodNodeClass` status. Ini termasuk label konfigurasi MIG seperti`nvidia.com/mig.config`. Saat pekerjaan yang masuk meminta sumber daya MIG, Karpenter akan secara otomatis menskalakan instance dengan label MIG yang sesuai diterapkan.
+ Jika Anda memilih untuk menghapus grup instans, kami sarankan untuk menghapusnya dari grup Anda `NodeClass` sebelum menghapusnya dari HyperPod cluster Anda. Jika grup instans dihapus saat digunakan dalam a`NodeClass`, grup `NodeClass` akan ditandai sebagai bukan `Ready` untuk penyediaan dan tidak akan digunakan untuk operasi penskalaan berikutnya sampai grup instans dihapus. `NodeClass`
+ Saat Anda menghapus grup instance dari a`NodeClass`, Karpenter akan mendeteksi penyimpangan pada node yang dikelola oleh Karpenter di grup instance dan mengganggu node berdasarkan kontrol anggaran gangguan Anda.
+ Subnet yang digunakan oleh grup instance harus milik AZ yang sama. Subnet ditentukan baik menggunakan `OverrideVpcConfig` pada tingkat grup instance atau tingkat cluster. `VpcConfig`digunakan secara default.
+ Hanya kapasitas sesuai permintaan yang didukung saat ini. Grup instans dengan rencana Pelatihan atau kapasitas cadangan tidak didukung.
+ Grup instans `DeepHealthChecks (DHC)` dengan tidak didukung. Ini karena DHC membutuhkan waktu sekitar 60-90 menit untuk menyelesaikannya dan pod akan tetap dalam status tertunda selama waktu itu yang dapat menyebabkan penyediaan berlebih.

Langkah-langkah berikut mencakup cara membuat`NodeClass`.

1. Buat file YAMG (misalnya, nodeclass.yaml) dengan konfigurasi Anda. `NodeClass`

1. Terapkan konfigurasi ke klaster Anda menggunakan kubectl.

1. Referensi `NodeClass` dalam `NodePool` konfigurasi Anda.

1. Berikut contoh `NodeClass` yang menggunakan jenis instance ml.c5.xlarge dan ml.c5.4xlarge:

   ```
   apiVersion: karpenter.sagemaker.amazonaws.com/v1
   kind: HyperpodNodeClass
   metadata:
     name: sample-nc
   spec:
     instanceGroups:
       # name of InstanceGroup in HyperPod cluster. InstanceGroup needs to pre-created
       # MaxItems: 10
       - auto-c5-xaz1
       - auto-c5-4xaz2
   ```

1. Terapkan konfigurasi:

   ```
   kubectl apply -f nodeclass.yaml
   ```

1. Pantau NodeClass status untuk memastikan kondisi Siap dalam status disetel ke True:

   ```
   kubectl get hyperpodnodeclass sample-nc -o yaml
   ```

   ```
   apiVersion: karpenter.sagemaker.amazonaws.com/v1
   kind: HyperpodNodeClass
   metadata:
     creationTimestamp: "<timestamp>"
     name: sample-nc
     uid: <resource-uid>
   spec:
     instanceGroups:
     - auto-c5-az1
     - auto-c5-4xaz2
   status:
     conditions:
     // true when all IGs in the spec are present in SageMaker cluster, false otherwise
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 3
       reason: InstanceGroupReady
       status: "True"
       type: InstanceGroupReady
     // true if subnets of IGs are discoverable, false otherwise
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 3
       reason: SubnetsReady
       status: "True"
       type: SubnetsReady
     // true when all dependent resources are Ready [InstanceGroup, Subnets]
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 3
       reason: Ready
       status: "True"
       type: Ready
     instanceGroups:
     - desiredLabels:
       - key: <custom_label_key>
         value: <custom_label_value>
       - key: nvidia.com/mig.config
         value: all-1g.5gb
       instanceTypes:
       - ml.c5.xlarge
       name: auto-c5-az1
       subnets:
       - id: <subnet-id>
         zone: <availability-zone-a>
         zoneId: <zone-id-a>
     - instanceTypes:
       - ml.c5.4xlarge
       name: auto-c5-4xaz2
       subnets:
       - id: <subnet-id>
         zone: <availability-zone-b>
         zoneId: <zone-id-b>
   ```