View a markdown version of this page

Kelola perangkat keras di Amazon EKS - Amazon EKS

Bantu tingkatkan halaman ini

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

Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.

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

Kelola perangkat keras di Amazon EKS

Amazon EKS mendukung dua mekanisme Kubernetes untuk mengelola perangkat keras khusus di kluster EKS: Dynamic Resource Allocation (DRA) dan plugin perangkat. Kedua mekanisme memungkinkan beban kerja untuk mengakses akselerator perangkat keras seperti GPU NVIDIA dan chip AWS Trainium, dan perangkat jaringan berkinerja tinggi seperti Elastic Fabric Adapter (EFA). Disarankan untuk menggunakan driver DRA untuk penerapan baru dengan Kubernetes versi 1.34 dan yang lebih baru saat menggunakan grup node terkelola EKS atau node yang dikelola sendiri, karena DRA menyediakan pemilihan perangkat yang lebih kaya, penjadwalan sadar topologi, dan kemampuan berbagi perangkat yang tidak dimungkinkan dengan plugin perangkat.

Referensikan dokumentasi Kubernetes untuk Dynamic Resource Allocation dan plugin perangkat untuk informasi umum tentang dua fitur Kubernetes ini.

Alokasi Sumber Daya Dinamis vs plugin perangkat

Plugin perangkat Kubernetes telah menjadi mekanisme utama untuk mengekspos perangkat keras khusus ke beban kerja Kubernetes. Plugin perangkat mengiklankan perangkat sebagai sumber daya tambahan (misalnya, nvidia.com/gpu atauaws.amazon.com/neuroncore) yang Anda minta dalam permintaan dan batasan sumber daya kontainer. Sementara plugin perangkat didukung dan digunakan secara luas, mereka memiliki keterbatasan:

  • Perangkat diminta sebagai jumlah bilangan bulat buram tanpa pemfilteran berbasis atribut.

  • Tidak ada dukungan untuk berbagi perangkat antara kontainer atau Pod.

  • Tidak ada alokasi sadar topologi ekspresif di seluruh jenis perangkat.

  • Ekstensi penjadwal khusus sering diperlukan untuk penempatan cerdas.

Dynamic Resource Allocation (DRA) adalah fitur Kubernetes yang tersedia secara umum di Kubernetes versi 1.34 yang mengatasi keterbatasan ini. Dengan DRA, driver perangkat mempublikasikan atribut perangkat yang kaya ke penjadwal Kubernetes melalui objek. ResourceSlice Anda meminta perangkat yang menggunakan ResourceClaim dan ResourceClaimTemplate objek yang mereferensikan DeviceClass kategori.

DRA memungkinkan:

  • Attribute-based pemilihan perangkat menggunakan ekspresi Common Expression Language (CEL).

  • Topology-aware alokasi yang memastikan perangkat ditempatkan bersama pada sakelar PCIe atau domain NUMA yang sama.

  • Berbagi perangkat antara beberapa kontainer atau Pod melalui ResourceClaim referensi bersama.

  • Constraint-based penjadwalan yang menyelaraskan berbagai jenis perangkat

Driver DRA untuk Amazon EKS

Driver DRA berikut biasanya digunakan untuk mengelola perangkat keras khusus di cluster Amazon EKS.

Pengemudi EFA DRA

Driver EFA DRA (DRANET) mengelola alokasi perangkat Elastic Fabric Adapter (EFA) dengan penjadwalan sadar topologi yang memasangkan antarmuka EFA dengan GPU lokal topologis atau perangkat Neuron, dan mendukung berbagi perangkat antar Pod. Untuk informasi selengkapnya, lihat Kelola perangkat EFA di Amazon EKS.

Pengemudi Neuron DRA

Driver Neuron DRA mengelola alokasi perangkat AWS Trainium dan AWS Inferentia2 dengan penjadwalan sadar topologi, alokasi subset perangkat yang terhubung, dan konfigurasi Logical (LNC), tanpa memerlukan ekstensi penjadwal khusus. NeuronCore

Pengemudi NVIDIA DRA

Driver NVIDIA DRA untuk GPU memungkinkan alokasi fleksibel dan konfigurasi ulang dinamis GPU NVIDIA, termasuk dukungan untuk ComputeDomain sumber daya untuk beban kerja Multi-Node NVLink (MNNVL) pada instans EC2. Grace-Blackwell Untuk informasi selengkapnya tentang penggunaan ComputeDomains dengan Grace-Blackwell instans EC2, lihat. Gunakan P6e-GB200 UltraServers dengan Amazon EKS

Plugin perangkat untuk Amazon EKS

Plugin perangkat berikut biasanya digunakan untuk mengelola perangkat keras khusus di kluster Amazon EKS.

Plugin perangkat EFA

Plugin perangkat EFA menemukan semua perangkat EFA yang tersedia di setiap node dan mengiklankan perangkat EFA sebagai sumber daya yang diperluas. vpc.amazonaws.com/efa

Plugin perangkat neuron

Plugin perangkat Neuron mengekspos perangkat keras Neuron sebagai aws.amazon.com/neuroncore dan sumber daya yang aws.amazon.com/neuron diperluas. Ini menemukan perangkat Neuron yang tersedia di setiap node, mengiklankannya sebagai sumber daya yang dapat dialokasikan, dan mengelola siklus hidupnya.

Plugin perangkat NVIDIA

Plugin perangkat NVIDIA mengiklankan GPU NVIDIA sebagai sumber daya yang nvidia.com/gpu diperluas dan melacak kesehatan GPU.

Pertimbangan-pertimbangan

Sebelum menggunakan driver DRA di Amazon EKS, tinjau pertimbangan berikut:

  • DRA tersedia di Amazon EKS dengan Kubernetes versi 1.33 ke atas, tetapi direkomendasikan untuk Kubernetes versi 1.34 dan yang lebih baru karena masalah Kubernetes hulu. Bidang kontrol cluster dan node Anda harus menjalankan versi Kubernetes yang mendukung DRA.

  • DRA saat ini tidak kompatibel dengan komputasi yang disediakan Karpenter atau EKS Auto Mode. Anda harus menggunakan grup node terkelola EKS atau node yang dikelola sendiri dengan driver DRA.

  • Driver DRA dan plugin perangkat untuk jenis perangkat yang sama tidak boleh berjalan secara bersamaan pada node yang sama. Copot pemasangan plugin perangkat sebelum menginstal driver DRA yang sesuai, atau gunakan pada node terpisah. Lihat Kubernetes upstream KEP-5004untuk mengetahui pembaruan tentang driver DRA dan kompatibilitas plugin perangkat.

  • DRA menggunakan sumber daya Kubernetes API (ResourceClaim,ResourceClaimTemplate,DeviceClass) yang berbeda dari plugin perangkat (,). resource.limits resource.requests Migrasi dari plugin perangkat ke DRA memerlukan pembaruan spesifikasi beban kerja Anda.

  • Plugin perangkat tetap didukung penuh untuk semua versi Kubernetes. Jika klaster Anda menjalankan versi Kubernetes lebih awal dari 1.34, atau jika Anda menggunakan Karpenter atau EKS Auto Mode, lanjutkan menggunakan plugin perangkat. Driver NVIDIA DRA tidak didukung pada Bottlerocket; gunakan plugin perangkat NVIDIA pada node Bottlerocket. Driver EFA dan Neuron DRA didukung di Bottlerocket.

DRA ResourceClaim vs ResourceClaimTemplate

Saat menggunakan DRA, Anda meminta perangkat melalui ResourceClaim atau ResourceClaimTemplate objek. Kedua jenis sumber daya ini melayani tujuan yang berbeda dan memiliki perilaku siklus hidup yang berbeda.

ResourceClaim

A ResourceClaim adalah objek Kubernetes bernama yang kamu buat secara independen dari Pod manapun. Anda mereferensikannya dalam spesifikasi Pod dengan nama menggunakan resourceClaimName field. A ResourceClaim memiliki karakteristik sebagai berikut:

  • Itu harus ada di cluster sebelum Pod apa pun yang mereferensikannya dibuat. Jika klaim tidak ada, Pod tetap dalam status tertunda.

  • Itu tetap ada sampai Anda menghapusnya secara eksplisit, terlepas dari apakah ada Pod yang mereferensikannya.

  • Beberapa Pod dapat mereferensikan hal yang samaResourceClaim, yang memungkinkan berbagi perangkat. Semua Pod yang mereferensikan klaim yang sama berbagi akses ke perangkat yang dialokasikan yang sama dan dijadwalkan ke node yang sama.

    Gunakan ResourceClaim saat Anda membutuhkan beberapa Pod untuk berbagi akses ke perangkat yang sama, atau saat Anda membutuhkan klaim yang ada di luar masa pakai satu Pod.

ResourceClaimTemplate

A ResourceClaimTemplate mendefinisikan template yang Kubernetes gunakan untuk secara otomatis menghasilkan unik ResourceClaim untuk setiap Pod. Anda mereferensikannya dalam spesifikasi Pod menggunakan resourceClaimTemplateName field. Itu ResourceClaimTemplate sendiri tidak terikat pada Pod mana pun — ini adalah template yang dapat digunakan kembali yang bertahan secara independen. A ResourceClaimTemplate memiliki karakteristik sebagai berikut:

  • Kubernetes membuat sebuah Pod baru ResourceClaim untuk setiap Pod yang mereferensikan template tersebut. Setiap Pod mendapatkan set perangkatnya sendiri yang terpisah.

  • Setiap yang ResourceClaim dihasilkan terikat pada siklus hidup Pod yang memicu pembuatannya. Ketika Pod dihapus, yang terkait yang ResourceClaim dihasilkan juga dihapus. Itu ResourceClaimTemplate sendiri tidak terpengaruh dan terus menghasilkan klaim baru untuk Pod future.

    Gunakan a ResourceClaimTemplate ketika setiap Pod dalam beban kerja membutuhkan perangkat khusus sendiri dengan konfigurasi serupa. Misalnya, gunakan ResourceClaimTemplate for Pod dalam Job yang menggunakan eksekusi paralel di mana setiap Pod membutuhkan perangkat GPU atau EFA sendiri.

Tabel berikut merangkum perbedaan antara ResourceClaim danResourceClaimTemplate.

Perilaku ResourceClaim ResourceClaimTemplate

Pembuatan

Anda membuatnya secara manual sebelum Pod mereferensikannya

Kubernetes membuat klaim secara otomatis per Pod

Siklus hidup

Bertahan sampai Anda menghapusnya

Template tetap ada sampai Anda menghapusnya. Setiap yang ResourceClaim dihasilkan terikat pada Pod yang memicu pembuatannya.

Berbagi perangkat di seluruh Pod

Didukung. Beberapa Pod dapat mereferensikan klaim yang sama.

Tidak didukung. Setiap Pod mendapat klaim terpisah.

Bidang spesifikasi pod

resourceClaimName

resourceClaimTemplateName

Untuk contoh penggunaan ResourceClaim objek untuk berbagi perangkat EFA antar Pod, lihatBagikan perangkat EFA di antara beberapa Pod. Untuk contoh menggunakan ResourceClaimTemplate objek dengan alokasi sadar topologi, lihat. Topology-aware EFA dan alokasi GPU/Neuron perangkat

Topik