Buat NodeClass - Amazon SageMaker AI

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

Buat NodeClass

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

  • 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

  • Jika label kustom diterapkan ke grup instance, Anda dapat melihatnya di desiredLabels bidang saat menanyakan HyperpodNodeClass status. Ini termasuk label konfigurasi MIG sepertinvidia.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 aNodeClass, 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 aNodeClass, 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. VpcConfigdigunakan 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 fileNodeClass.

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

  2. Terapkan konfigurasi ke klaster Anda menggunakan kubectl.

  3. Referensi NodeClass dalam NodePool konfigurasi Anda.

  4. 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
  5. Terapkan konfigurasi:

    kubectl apply -f nodeclass.yaml
  6. 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>