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 EFA di Amazon EKS
Elastic Fabric Adapter (EFA) adalah perangkat jaringan untuk instans Amazon EC2 yang memungkinkan komunikasi antar node berkinerja tinggi dan RDMA (Remote Direct Memory Access) untuk kecerdasan buatan, pembelajaran mesin, dan beban kerja Komputasi Kinerja Tinggi (HPC). Amazon EKS mendukung dua mekanisme untuk mengelola perangkat EFA di kluster EKS: driver EFA Dynamic Resource Allocation (DRA) (DRANET) dan plugin perangkat EFA.
Sebaiknya gunakan driver DRA untuk penerapan baru dengan Kubernetes versi 1.34 dan yang lebih baru saat menggunakan penyediaan kapasitas statis
Driver EFA DRA vs plugin perangkat EFA
| Fitur | Pengemudi EFA DRA | Plugin perangkat EFA |
|---|---|---|
|
Versi Kubernetes minimum |
1.34 |
Semua versi EKS-supported Kubernetes |
|
Komputasi EKS |
Karpenter (hanya kapasitas statis), grup node terkelola, node yang dikelola sendiri |
Mode Otomatis EKS, Karpenter, grup simpul terkelola, node yang dikelola sendiri |
|
EKS-optimized AMI |
AL2023, Bottlerocket |
AL2023, Bottlerocket |
|
Iklan perangkat |
Atribut kaya melalui |
Jumlah bilangan bulat dari sumber daya |
|
GPU-EFA afinitas |
DRA-native kesadaran topologi |
Kesadaran topologi otomatis (hanya AMI EKS-optimized AL2023) |
|
Neuron-EFA afinitas |
DRA-native kesadaran topologi |
Kesadaran topologi otomatis (hanya AMI EKS-optimized AL2023) |
|
Berbagi perangkat |
Beberapa Pod dapat berbagi perangkat EFA yang sama melalui referensi bersama |
Tidak didukung. Setiap perangkat EFA secara eksklusif dialokasikan ke satu Pod. |
Membuat node EKS dengan antarmuka EFA
Saat Anda membuat node EKS dengan antarmuka EFA, antarmuka EFA dilampirkan ke instance selama penyediaan instans. Anda dapat menyesuaikan konfigurasi EFA per perangkat dan menggunakan grup penempatan dengan Mode Otomatis EKS, Karpenter, grup simpul dikelola EKS, atau grup simpul yang dikelola sendiri EKS. Dengan Mode Otomatis EKS, Anda melewati konfigurasi untuk setiap antarmuka jaringan melalui bagian NodeClass bawahadvancedNetworking.networkInterfaces. Dengan Karpenter, Anda melewati konfigurasi untuk setiap antarmuka jaringan melalui. EC2NodeClass Dengan grup node yang dikelola EKS atau node yang dikelola sendiri, Anda melewati konfigurasi untuk setiap antarmuka jaringan dengan template https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html peluncuran.
Saat menggunakan eksctl untuk penyediaan node EKS dengan efaEnabled pengaturan, semua antarmuka dikonfigurasi dengan jenis antarmukaEFA, grup EFA-specific keamanan dibuat, dan plugin perangkat EFA diinstal pada cluster. Jika Anda perlu menyesuaikan konfigurasi EFA per perangkat saat menggunakaneksctl, disarankan untuk menggunakan dukungan `eksctl untuk template peluncuran. https://docs.aws.amazon.com/eks/latest/eksctl/launch-template-support.html
Contoh berikut menunjukkan cara mengkonfigurasi NodeClass dan meluncurkan template dengan antarmuka EFA. Ini berguna untuk menyesuaikan antarmuka yang digunakan untuk IP-based lalu lintas EFA vs standar. Untuk informasi tentang jumlah antarmuka EFA yang didukung oleh setiap jenis instans dan cara mengonfigurasinya untuk bandwidth jaringan maksimum, lihat Memak simalkan bandwidth jaringan untuk jenis EFA-enabled contoh di Panduan Pengguna Amazon EC2.
Mode Otomatis EKS
Dalam Mode Otomatis EKS, Anda mengkonfigurasi antarmuka jaringan EFA menggunakan advancedNetworking.networkInterfaces bidang di NodeClass (eks.amazonaws.com/v1). Setiap entri menentukan anetworkCardIndex,deviceIndex, daninterfaceType. Bisa interfaceType untuk antarmuka jaringan standar atau interface untuk antarmuka EFA yang didedikasikan efa-only untuk lalu lintas RDMA tanpa alamat IP yang ditetapkan.
Ketika networkInterfaces dikonfigurasi, instans yang diluncurkan oleh NodePool referensi NodeClass menggunakan konfigurasi ini terlepas dari apakah Pod meminta vpc.amazonaws.com/efa sumber daya. Mode Otomatis EKS tidak melampirkan IP tambahan, awalan, atau ENI setelah peluncuran instance untuk node dengan konfigurasi antarmuka jaringan statis - hanya antarmuka dan IP yang dikonfigurasi saat peluncuran tersedia untuk Pod.
Fitur ini dapat digunakan dengan kumpulan node kapasitas statis untuk mempertahankan node yang sudah dipanaskan sebelumnya untuk pelatihan terdistribusi dan beban kerja inferensi. EFA-ready
apiVersion: eks.amazonaws.com/v1 kind: NodeClass metadata: name: efa-node-class spec: role: MyNodeRole subnetSelectorTerms: - tags: Name: "private-subnet" securityGroupSelectorTerms: - tags: Name: "efa-security-group" placementGroupSelector: name: "ml-training-pg" advancedNetworking: networkInterfaces: - deviceIndex: 0 interfaceType: interface networkCardIndex: 0 secondaryIPv4PrefixCount: 1 - networkCardIndex: 0 deviceIndex: 1 interfaceType: efa-only - networkCardIndex: 1 deviceIndex: 0 interfaceType: efa-only - networkCardIndex: 2 deviceIndex: 0 interfaceType: efa-only - networkCardIndex: 3 deviceIndex: 0 interfaceType: efa-only
Untuk daftar lengkap kendala pada konfigurasi antarmuka jaringan statis, lihat Konfigurasi Antarmuka Jaringan Statis dalam NodeClass dokumentasi.
Karpenter
Setiap entri dalam networkInterfaces menentukan anetworkCardIndex,deviceIndex, daninterfaceType. interfaceTypeBisa interface untuk antarmuka jaringan standar atau efa-only untuk antarmuka EFA yang didedikasikan untuk lalu lintas RDMA dan tidak memiliki alamat IP yang ditetapkan. Ketika networkInterfaces dikonfigurasi, instans yang diluncurkan oleh NodePool referensi NodeClass menggunakan konfigurasi ini terlepas dari apakah Pod meminta vpc.amazonaws.com/efa sumber daya.
Saat menggunakan Karpenter tanpa menentukan networkInterfaces di AndaNodeClass, instans yang dibuat untuk Pod yang meminta vpc.amazonaws.com/efa memiliki semua antarmuka dikonfigurasi dengan jenis antarmuka. EFA
networkInterfacesKonfigurasi untuk EC2NodeClass ditambahkan di Karpenter v1.11. Contoh berikut menunjukkan yang EC2NodeClass dikonfigurasi untuk sebuah P6-B200 instance dengan 1 antarmuka ENA dan 8 EFA-only antarmuka.
apiVersion: karpenter.k8s.aws/v1 kind: EC2NodeClass metadata: name: efa-node-class spec: networkInterfaces: - networkCardIndex: 0 deviceIndex: 0 interfaceType: interface - networkCardIndex: 0 deviceIndex: 1 interfaceType: efa-only - networkCardIndex: 1 deviceIndex: 0 interfaceType: efa-only - networkCardIndex: 2 deviceIndex: 0 interfaceType: efa-only - networkCardIndex: 3 deviceIndex: 0 interfaceType: efa-only - networkCardIndex: 4 deviceIndex: 0 interfaceType: efa-only - networkCardIndex: 5 deviceIndex: 0 interfaceType: efa-only - networkCardIndex: 6 deviceIndex: 0 interfaceType: efa-only - networkCardIndex: 7 deviceIndex: 0 interfaceType: efa-only
Grup node yang dikelola EKS dan node yang dikelola sendiri
Dengan grup node yang dikelola EKS atau node yang dikelola sendiri, Anda melewati konfigurasi untuk setiap antarmuka jaringan dengan template https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html peluncuran.
Contoh berikut menunjukkan template peluncuran yang dikonfigurasi untuk P6-B200 instance dengan 1 antarmuka ENA dan 8 EFA-only antarmuka. Antarmuka jaringan utama (kartu jaringan 0, indeks perangkat 0) menggunakan interface tipe standar untuk lalu lintas IP, sementara antarmuka tambahan digunakan efa-only untuk lalu lintas RDMA khusus. Sesuaikan jumlah efa-only antarmuka berdasarkan jenis instans Anda. Untuk jumlah antarmuka EFA yang didukung oleh setiap jenis instans, lihat Memak simalkan bandwidth jaringan untuk jenis EFA-enabled instans di Panduan Pengguna Amazon EC2.
Ganti
security-group-id
dengan nilai-nilai Anda. Grup keamanan harus mengizinkan semua lalu lintas masuk dan keluar ke dan dari dirinya sendiri untuk mengaktifkan fungsionalitas EF OS-bypass A. Untuk informasi selengkapnya, lihat Langkah 1: Mempersiapkan grup EFA-enabled keamanan di Panduan Pengguna Amazon EC2.
penting
Jangan tentukan SubnetId dalam template peluncuran saat menggunakan grup node yang dikelola EKS. EKS mensyaratkan bahwa semua subnet ditentukan melalui CreateNodegroup API dan menolak template peluncuran yang menyertakan konfigurasi subnet.
{ "LaunchTemplateName": "efa-launch-template", "LaunchTemplateData": { "InstanceType": "p6-b200.48xlarge", "NetworkInterfaces": [ { "NetworkCardIndex": 0, "DeviceIndex": 0, "InterfaceType": "interface", "Groups": ["security-group-id"] }, { "NetworkCardIndex": 0, "DeviceIndex": 1, "InterfaceType": "efa-only", "Groups": ["security-group-id"] }, { "NetworkCardIndex": 1, "DeviceIndex": 0, "InterfaceType": "efa-only", "Groups": ["security-group-id"] }, { "NetworkCardIndex": 2, "DeviceIndex": 0, "InterfaceType": "efa-only", "Groups": ["security-group-id"] }, { "NetworkCardIndex": 3, "DeviceIndex": 0, "InterfaceType": "efa-only", "Groups": ["security-group-id"] }, { "NetworkCardIndex": 4, "DeviceIndex": 0, "InterfaceType": "efa-only", "Groups": ["security-group-id"] }, { "NetworkCardIndex": 5, "DeviceIndex": 0, "InterfaceType": "efa-only", "Groups": ["security-group-id"] }, { "NetworkCardIndex": 6, "DeviceIndex": 0, "InterfaceType": "efa-only", "Groups": ["security-group-id"] }, { "NetworkCardIndex": 7, "DeviceIndex": 0, "InterfaceType": "efa-only", "Groups": ["security-group-id"] } ] } }
Menggunakan EKS-optimized AMI dengan EFA
AMI EKS-optimized AL2023 dan semua AMI Bottlerocket menyertakan komponen tingkat host yang diperlukan untuk menggunakan EFA, khususnya komponen yang dipasang oleh aws-efa-installer. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-enable EKS AL2023 dan AMI Bottlerocket tidak menyertakan driver DRA EFA atau plugin perangkat EFA, dan ini harus diinstal secara terpisah di cluster Anda sebelum menerapkan beban kerja.
Melestarikan alokasi alamat IP
EFA-enabled contoh seperti p5.48xlarge dan p6-b200.48xlarge mendukung banyak antarmuka jaringan. Secara default, Amazon VPC CNI mengalokasikan alamat IP di semua ENI IP-enabled terlampir, yang dapat menggunakan sejumlah besar alamat IP dari subnet Anda bahkan ketika alamat tersebut tidak digunakan secara aktif oleh Pod. Pada instans dengan lusinan antarmuka jaringan, ini dapat dengan cepat menghabiskan ruang IP subnet Anda yang tersedia.
Untuk mengurangi konsumsi alamat IP pada EFA-enabled node, konfigurasikan antarmuka jaringan Anda untuk digunakan efa-only untuk semua antarmuka kecuali yang utama. EFA-only antarmuka didedikasikan untuk lalu lintas RDMA dan tidak memiliki alamat IP yang ditetapkan, sehingga mereka tidak menggunakan alamat dari subnet Anda. Misalnya konfigurasi, lihat Karpenter danGrup node yang dikelola EKS dan node yang dikelola sendiri. Untuk tata letak antarmuka yang disarankan untuk setiap jenis instans, lihat Mem aksimalkan bandwidth jaringan untuk jenis EFA-enabled instans di Panduan Pengguna Amazon EC2.
Selain menggunakan efa-only antarmuka, Anda dapat mengonfigurasi Amazon VPC CNI untuk membatasi jumlah alamat IP hangat (pra-dialokasikan) dan ENI. Secara default, VPC CNI melakukan pra-alokasi kumpulan ENI dan alamat IP yang hangat untuk startup Pod yang lebih cepat, tetapi pada instans besar ini dapat menyimpan ratusan alamat IP yang tidak digunakan. Atur variabel WARM_IP_TARGET dan WARM_ENI_TARGET lingkungan aws-node DaemonSet untuk mengontrol berapa banyak alamat IP cadangan dan ENI yang dikelola CNI. Untuk informasi selengkapnya tentang pengaturan ini, lihat praktik terbaik Amazon VPC CNI.
catatan
Peng WARM_ENI_TARGET WARM_IP_TARGET aturan dan bersifat seluruh cluster dan berlaku untuk semua node yang dikelola oleh VPC CNI. Saat ini tidak ada cara untuk menetapkan nilai yang berbeda untuk setiap grup node atau jenis instance. Jika Anda memerlukan kontrol yang lebih terperinci atas pengaturan ini, berikan umpan balik tentang masalah container-peta jalan #1834
Instal driver EFA DRA (DRANET)
Driver EFA DRA dibangun di proyek
Driver EFA DRA mengiklankan perangkat EFA sebagai ResourceSlice objek dengan nama driver dra.net dan nama. DeviceClass efa.networking.k8s.aws Driver EFA DRA berjalan sebagai a DaemonSet pada setiap node dan secara otomatis menemukan perangkat EFA.
Prasyarat
-
Cluster Amazon EKS yang menjalankan Kubernetes versi 1.34 atau yang lebih baru dengan kapasitas statis yang disediakan oleh Karpenter, grup node yang dikelola EKS, atau grup node yang dikelola sendiri.
-
Node dengan EFA-enabled tipe instans Amazon EC2. Untuk daftar jenis instans yang didukung, lihat Jenis instans yang didukung di Panduan Pengguna Amazon EC2.
-
Node dengan komponen tingkat host yang diinstal untuk EFA, lihat Meng instal perangkat lunak EFA untuk informasi selengkapnya. AMi NVIDIA dan Neuron EKS-optimized AL2023, dan AMI Bottlerocket menyertakan komponen tingkat host EFA.
-
Helm diinstal di lingkungan baris perintah Anda, lihat petunjuk Peng aturan Helm untuk informasi selengkapnya.
-
kubectldikonfigurasi untuk berkomunikasi dengan cluster Anda, lihat Instal atau perbarui kubectl untuk informasi selengkapnya.
Prosedur
penting
Jangan menginstal driver EFA DRA pada node tempat plugin perangkat EFA berjalan. Kedua mekanisme tidak dapat hidup berdampingan pada node yang sama. Melakukannya dapat menyebabkan kelebihan langganan senyap dari perangkat yang mendasarinya ke beberapa pod pada node yang sama.
-
Tambahkan repositori bagan EKS Helm.
helm repo add eks https://aws.github.io/eks-charts -
Perbarui repositori Helm lokal Anda.
helm repo update -
Instal driver EFA DRA pada cluster Anda menggunakan Helm. Driver EFA DRA secara otomatis mendeteksi bahwa ia berjalan pada instans EC2 melalui Instance Metadata Service (IMDS) dan memungkinkan penemuan perangkat EFA. Driver EFA DRA digunakan sebagai a DaemonSet di
kube-systemnamespace secara default. Lihat Helm values.yaml di repositori bagan EKS Helm GitHub untuk parameter yangdapat dikonfigurasi. helm install aws-dranet eks/aws-dranet --namespace kube-system -
Verifikasi bahwa DRANET DaemonSet sedang berjalan.
kubectl get daemonset -n kube-system aws-dranetNAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE aws-dranet 2 2 2 2 2 <none> 60s -
Verifikasi bahwa
DeviceClassitu dibuat.kubectl get deviceclassNAME AGE efa.networking.k8s.aws 60s -
Verifikasi bahwa
ResourceSliceobjek diiklankan untuk node Anda.kubectl get resourceslices --field-selector spec.driver=dra.netJika Anda mengalami kesalahan dengan langkah-langkah di atas, Anda dapat memeriksa log untuk DRANET dengan perintah berikut.
kubectl logs -n kube-system -l app=aws-dranet -
Untuk meminta perangkat EFA menggunakan driver DRA, buat
ResourceClaimatauResourceClaimTemplateyang mereferensikan EFADeviceClassdan referensi dalam spesifikasi Pod Anda. Contoh berikut meminta satu perangkat EFA.apiVersion: resource.k8s.io/v1 kind: ResourceClaimTemplate metadata: name: single-efa-claim spec: spec: devices: requests: - name: efa exactly: deviceClassName: efa.networking.k8s.aws count: 1 --- apiVersion: v1 kind: Pod metadata: name: efa-workload spec: containers: - name: app ... resources: claims: - name: efa-device resourceClaims: - name: efa-device resourceClaimTemplateName: single-efa-claim
Topology-aware EFA dan alokasi GPU/Neuron perangkat
Driver EFA DRA mendukung alokasi sadar topologi yang memasangkan antarmuka EFA dengan GPU atau perangkat Neuron pada root PCIe yang sama. Gunakan batasan untuk menyelaraskan alokasi perangkat EFA dan GPU atau Neuron. matchAttribute Untuk menggunakan kemampuan ini, Anda juga harus menggunakan driver NVIDIA atau Neuron DRA. Untuk informasi selengkapnya, lihat Kelola GPU NVIDIA di Amazon EKS dan Kelola perangkat Neuron di Amazon EKS.
Contoh berikut meminta 1 antarmuka EFA yang disejajarkan dengan 1 GPU NVIDIA:
apiVersion: resource.k8s.io/v1 kind: ResourceClaimTemplate metadata: name: aligned-efa-nvidia spec: spec: devices: requests: - name: 1-efa exactly: deviceClassName: efa.networking.k8s.aws count: 1 - name: 1-gpu exactly: deviceClassName: gpu.nvidia.com count: 1 constraints: - requests: ["1-gpu", "1-efa"] matchAttribute: "resource.kubernetes.io/pcieRoot"
Contoh berikut meminta 4 antarmuka EFA yang disejajarkan dengan 4 perangkat Neuron:
apiVersion: resource.k8s.io/v1 kind: ResourceClaimTemplate metadata: name: aligned-efa-neuron spec: spec: devices: requests: - name: 4-neurons exactly: deviceClassName: neuron.aws.com count: 4 - name: 4-efas exactly: deviceClassName: efa.networking.k8s.aws count: 4 constraints: - requests: ["4-neurons", "4-efas"] matchAttribute: "resource.aws.com/devicegroup4_id"
Angka dalam nama devicegroup atribut sesuai dengan jumlah perangkat Neuron dalam grup topologi yang terhubung. Misalnya, resource.aws.com/devicegroup1_id mengidentifikasi satu perangkat Neuron, resource.aws.com/devicegroup4_id mengidentifikasi sekelompok 4 perangkat yang terhubung, resource.aws.com/devicegroup8_id dan resource.aws.com/devicegroup16_id mengidentifikasi kelompok 8 dan 16 perangkat yang terhubung masing-masing. Pilih matchAttribute yang cocok dengan perangkat count dalam permintaan Anda sehingga perangkat Neuron yang dialokasikan dan antarmuka EFA milik grup topologi terhubung yang sama. Untuk informasi lebih lanjut tentang atribut ini, lihat dokumentasi driver Neuron DRA
Anda dapat menggunakan allocationMode untuk menyederhanakan bagaimana perangkat EFA dialokasikan ke akselerator GPU atau Neuron yang selaras. Bid allocationMode ang mendukung dua nilai: ExactCount (default) meminta sejumlah perangkat tertentu yang ditentukan olehcount, dan All meminta semua perangkat yang cocok dalam kumpulan. Misalnya, pada p5.48xlarge contoh ada empat perangkat EFA yang berbagi root PCIe yang sama dengan satu GPU. Untuk mengalokasikan grup perangkat EFA ini dengan GPU yang selaras, bahkan jika Anda tidak mengetahui pemetaan EFA-GPU perangkat yang tepat dan jumlah perangkat EFA yang selaras, Anda dapat mengonfigurasi ResourceClaimTemplate perangkat Anda allocationMode: All untuk perangkat EFA.
apiVersion: resource.k8s.io/v1 kind: ResourceClaimTemplate metadata: name: aligned-all-efa-one-nvidia spec: spec: devices: requests: - name: all-efas exactly: deviceClassName: efa.networking.k8s.aws allocationMode: All - name: one-gpu exactly: deviceClassName: gpu.nvidia.com allocationMode: ExactCount count: 1 constraints: - requests: ["all-efas", "one-gpu"] matchAttribute: "resource.kubernetes.io/pcieRoot"
Bagikan perangkat EFA antara beberapa Pod
Driver EFA DRA mendukung berbagi perangkat EFA antara beberapa Pod dengan menggunakan a. ResourceClaim Tidak seperti aResourceClaimTemplate, yang menghasilkan klaim terpisah untuk setiap Pod, a ResourceClaim adalah objek bernama yang Anda buat secara independen dan referensi dari beberapa Pod. Semua Pod yang mereferensikan akses ResourceClaim berbagi akses ke perangkat EFA yang dialokasikan yang sama dan dijadwalkan ke node yang sama di mana perangkat tersebut tersedia.
Untuk berbagi perangkat EFA antar Pod, buat ResourceClaim yang meminta perangkat EFA, lalu referensi klaim tersebut berdasarkan nama di setiap resourceClaims bidang Pod menggunakan. resourceClaimName ResourceClaimHarus ada di cluster sebelum Pod yang mereferensikannya dibuat. Jika referensi ResourceClaim tidak ada, Pod tetap dalam status tertunda sampai klaim dibuat.
Contoh berikut membuat sebuah ResourceClaim yang meminta 4 perangkat EFA, dan dua Pod yang berbagi akses ke perangkat tersebut.
-
Buat
ResourceClaim.apiVersion: resource.k8s.io/v1 kind: ResourceClaim metadata: name: shared-efa spec: devices: requests: - name: efa exactly: deviceClassName: efa.networking.k8s.aws count: 4 -
Referensi
ResourceClaimkan berdasarkan nama di setiap Pod yang membutuhkan akses ke perangkat EFA. Setiap Pod digunakanresourceClaimNameuntuk mereferensikan klaim yang ada, bukanresourceClaimTemplateName.apiVersion: v1 kind: Pod metadata: name: training-worker spec: containers: - name: worker image: my-training-image resources: claims: - name: efa-devices resourceClaims: - name: efa-devices resourceClaimName: shared-efa --- apiVersion: v1 kind: Pod metadata: name: training-monitor spec: containers: - name: monitor image: my-monitor-image resources: claims: - name: efa-devices resourceClaims: - name: efa-devices resourceClaimName: shared-efa
Kedua Pod mereferensikan sama shared-efa ResourceClaim dan dijadwalkan ke node tempat perangkat EFA tersebut dialokasikan. Sik ResourceClaim lus hidup tidak bergantung pada Pod — siklus hidup tetap ada sampai Anda menghapusnya, bahkan jika semua Pod yang mereferensikannya dihapus.
Instal plugin perangkat EFA Kubernetes
Plugin perangkat EFA Kubernetes mengiklankan perangkat EFA sebagai sumber daya yang diperluas. vpc.amazonaws.com/efa Anda meminta perangkat EFA dalam permintaan dan batasan sumber daya kontainer. Untuk panduan lengkap menyiapkan EFA dengan beban kerja pelatihan, lihat. Jalankan pelatihan pembelajaran mesin di Amazon EKS dengan Adaptor Kain Elastis
penting
Topology-aligned alokasi GPU NVIDIA atau perangkat Neuron dengan antarmuka EFA terjadi secara otomatis saat menggunakan AMI yang dipercepat EKS-optimized AL2023. Penyelarasan otomatis ini tidak terjadi saat menggunakan AMI Bottlerocket atau EKS-optimized AMI khusus. Jika Anda memerlukan akselerator yang selaras dengan topologi dan alokasi perangkat EFA dengan Bottlerocket atau AMI khusus, gunakan driver EFA DRA dan driver Neuron DRA yang sesuai. Untuk menggunakan driver NVIDIA DRA di Bottlerocket, Anda harus terlebih dahulu menonaktifkan plugin perangkat NVIDIA yang dibundel dengan varian Bottlerocket NVIDIA, yang memerlukan Bottlerocket versi 1.63.0 atau yang lebih baru. Untuk informasi selengkapnya, lihat Topology-aware EFA dan alokasi GPU/Neuron perangkat dan Instal driver NVIDIA DRA.
penting
Dimulai dengan NVIDIA k8s-device-plugin v0.19.0, --mofed-enabled bendera default ketrue, yang menyebabkan plugin perangkat NVIDIA memasang semua /dev/infiniband/uverbs* perangkat ke dalam wadah yang meminta GPU. Ini bertentangan dengan plugin perangkat EFA, yang seharusnya menjadi komponen yang mengelola alokasi perangkat EFA di. /dev/infiniband Jika Anda menggunakan grup node yang dikelola EKS atau node yang dikelola sendiri dengan plugin perangkat NVIDIA, Anda harus menonaktifkan MOFED secara eksplisit. Untuk petunjuk, lihat Instal plugin perangkat NVIDIA Kubernetes.
Mode Otomatis EKS tidak mengaktifkan MOFED secara default dan tidak terpengaruh oleh masalah ini.
Prasyarat
-
Cluster Amazon EKS.
-
Node dengan EFA-enabled tipe instans Amazon EC2. Untuk daftar jenis instans yang didukung, lihat Jenis instans yang didukung di Panduan Pengguna Amazon EC2.
-
Node dengan komponen tingkat host yang diinstal untuk EFA, lihat Meng instal perangkat lunak EFA untuk informasi selengkapnya. AMI EKS-optimized AL2023 dan AMI Bottlerocket menyertakan komponen tingkat host EFA.
-
Helm diinstal di lingkungan baris perintah Anda, lihat petunjuk Peng aturan Helm untuk informasi selengkapnya.
-
kubectldikonfigurasi untuk berkomunikasi dengan cluster Anda, lihat Instal atau perbarui kubectl untuk informasi selengkapnya.
Prosedur
-
Tambahkan repositori bagan EKS Helm.
helm repo add eks https://aws.github.io/eks-charts -
Perbarui repositori Helm lokal Anda.
helm repo update -
Instal plugin perangkat EFA.
helm install efa eks/aws-efa-k8s-device-plugin -n kube-system -
Verifikasi plugin perangkat EFA DaemonSet sedang berjalan.
kubectl get daemonset -n kube-system efa-aws-efa-k8s-device-pluginNAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE efa-aws-efa-k8s-device-plugin 2 2 2 2 2 <none> 60s -
Pastikan node Anda memiliki sumber daya EFA yang dapat dialokasikan.
kubectl get nodes "-o=custom-columns=NAME:.metadata.name,EFA:.status.allocatable.vpc\.amazonaws\.com/efa"NAME EFA ip-192-168-11-225.us-west-2.compute.internal 4 ip-192-168-24-96.us-west-2.compute.internal 4 -
Untuk meminta perangkat EFA menggunakan plugin perangkat, tentukan
vpc.amazonaws.com/efasumber daya dalam permintaan dan batasan sumber daya kontainer Anda.apiVersion: v1 kind: Pod metadata: name: efa-workload spec: containers: - name: app ... resources: limits: vpc.amazonaws.com/efa: 4 hugepages-2Mi: ... requests: vpc.amazonaws.com/efa: 4 hugepages-2Mi: ...