View a markdown version of this page

Kelola perangkat keras di Amazon EKS - Amazon EKS

Bantu meningkatkan 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 GitHub tautan Edit halaman ini di 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).

Sebaiknya gunakan driver DRA untuk penerapan baru dengan Kubernetes versi 1.34 dan yang lebih baru saat menggunakan penyediaan kapasitas statis di Karpenter, grup node terkelola EKS, atau node yang dikelola sendiri. DRA saat ini tidak didukung dengan Mode Otomatis EKS. DRA menyediakan pilihan perangkat yang lebih kaya, penjadwalan sadar topologi, dan kemampuan berbagi perangkat yang tidak dimungkinkan dengan plugin perangkat.

Referensikan dokumentasi Kubernetes untuk Alokasi Sumber Daya Dinamis 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 yang diperluas (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 wadah atau Pod.

  • Tidak ada alokasi ekspresif yang sadar topologi 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 menerbitkan atribut perangkat kaya ke penjadwal Kubernetes melalui objek. ResourceSlice Anda meminta perangkat menggunakan ResourceClaim dan ResourceClaimTemplate objek yang mereferensi DeviceClass kan kategori.

DRA memungkinkan:

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

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

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

  • Partisi dinamis dan berbagi GPU NVIDIA saat menggunakan MIG atau pemotongan waktu

Driver DRA untuk Amazon EKS

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

Driver NVIDIA DRA

Driver NVIDIA DRA untuk GPU aktif GitHub memungkinkan alokasi fleksibel dan konfigurasi dinamis GPU NVIDIA. Lihat Gunakan driver NVIDIA DRA atau plugin perangkat di Amazon EKS untuk informasi tentang mengelola GPU dengan driver NVIDIA DRA dan Gunakan P6e-GB200 UltraServers dengan Amazon EKS untuk informasi tentang penggunaan ComputeDomains untuk beban kerja Multi-Node NVLink (MNNVL) dengan instans EC2. Grace-Blackwell

Pengemudi EFA DRA

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

Driver Neuron DRA

Driver Neuron DRA mengelola alokasi perangkat AWS Trainium dan AWS Inferentia2 dengan penjadwalan sadar topologi, alokasi subset perangkat yang terhubung, dan konfigurasi Logis NeuronCore (LNC), tanpa memerlukan ekstensi penjadwal khusus. Untuk informasi selengkapnya, lihat Kelola perangkat Neuron di Amazon EKS.

Plugin perangkat untuk Amazon EKS

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

Plugin perangkat NVIDIA

Plugin perangkat NVIDIA pada meng GitHub iklankan GPU NVIDIA sebagai sumber daya nvidia.com/gpu yang diperluas dan melacak kesehatan GPU.

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 mengek spos perangkat keras Neuron sebagai sumber daya aws.amazon.com/neuroncore 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.

Pertimbangan-pertimbangan

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

  • DRA tersedia di Amazon EKS dengan Kubernetes versi 1.33 dan yang lebih tinggi, tetapi direkomendasikan untuk Kubernetes versi 1.34 dan yang lebih baru karena masalah Kubernetes hulu. https://github.com/kubernetes/kubernetes/issues/133920 GitHub Bidang kontrol cluster dan node Anda harus menjalankan versi Kubernetes yang mendukung DRA.

  • DRA saat ini tidak kompatibel dengan Mode Otomatis EKS.

  • DRA saat ini tidak kompatibel dengan Karpenter saat menggunakan kapasitas yang disediakan secara dinamis. Anda harus menggunakan penyediaan kapasitas statis di Karpenter, atau 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 menyebarkannya pada node terpisah. Menjalankan driver DRA dan plugin perangkat untuk perangkat yang sama pada node yang sama dapat menyebabkan kelebihan langganan senyap dari perangkat keras yang mendasarinya.

  • DRA menggunakan sumber daya API Kubernetes yang berbeda (ResourceClaim,ResourceClaimTemplate,DeviceClass) daripada plugin perangkat (resource.limits,). resource.requests Anda dapat menggunakan DRA untuk mengelola sumber daya yang diperluas plugin perangkat tanpa mengubah spesifikasi beban kerja Anda. Untuk informasi selengkapnya tentang sumber daya yang diperluas di DRA, lihat dokumentasi Kubernetes di situs web Kubernetes.

  • Driver DRA untuk NVIDIA, EFA, dan Neuron kompatibel dengan AMI EKS-optimized AL2023 dan AMI Bottlerocket. Jika Anda menggunakan driver NVIDIA DRA dengan Bottlerocket, nonaktifkan plugin perangkat NVIDIA yang disertakan dalam varian Bottlerocket NVIDIA.

  • Plugin perangkat tetap didukung penuh untuk semua versi Kubernetes.

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 bernama Kubernetes yang Anda buat secara independen dari Pod mana pun. Anda mereferensikannya dalam spesifikasi Pod berdasarkan nama menggunakan resourceClaimName bidang. 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 keadaan 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 ketika Anda memerlukan beberapa Pod untuk berbagi akses ke perangkat yang sama, atau ketika Anda memerlukan klaim untuk ada di luar masa pakai satu Pod.

ResourceClaimTemplate

A ResourceClaimTemplate mendefinisikan template yang digunakan Kubernetes untuk secara otomatis menghasilkan unik ResourceClaim untuk setiap Pod. Anda mereferensikannya dalam spesifikasi Pod menggunakan resourceClaimTemplateName bidang. 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 yang baru ResourceClaim untuk setiap Pod yang mereferensikan template. Setiap Pod mendapatkan perangkat tersendiri.

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

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

Tabel berikut merangkum perbedaan antara ResourceClaim danResourceClaimTemplate.

Perilaku ResourceClaim ResourceClaimTemplate

Pembuatan

Anda membuatnya secara manual sebelum Pod mereferensikannya

Kubernetes menghasilkan klaim secara otomatis per Pod

Siklus hidup

Bertahan sampai Anda menghapusnya

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

Berbagi perangkat di seluruh Pod

Didukung. Beberapa Pod dapat merujuk klaim yang sama.

Tidak didukung. Setiap Pod mendapat klaim terpisah.

Bidang spesifikasi pod

resourceClaimName

resourceClaimTemplateName

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

Topik