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 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
-
Jika label kustom diterapkan ke grup instance, Anda dapat melihatnya di
desiredLabelsbidang saat menanyakanHyperpodNodeClassstatus. 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
NodeClasssebelum menghapusnya dari HyperPod cluster Anda. Jika grup instans dihapus saat digunakan dalam aNodeClass, grupNodeClassakan ditandai sebagai bukanReadyuntuk 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
OverrideVpcConfigpada 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.
-
Buat file YAMG (misalnya, nodeclass.yaml) dengan konfigurasi Anda.
NodeClass -
Terapkan konfigurasi ke klaster Anda menggunakan kubectl.
-
Referensi
NodeClassdalamNodePoolkonfigurasi Anda. -
Berikut contoh
NodeClassyang 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 -
Terapkan konfigurasi:
kubectl apply -f nodeclass.yaml -
Pantau NodeClass status untuk memastikan kondisi Siap dalam status disetel ke True:
kubectl get hyperpodnodeclass sample-nc -o yamlapiVersion: 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>