Secara default, versi driver NVIDIA yang diinstal pada kluster Container Service for Kubernetes (ACK) bervariasi tergantung tipe dan versi kluster tersebut. Jika Anda memerlukan versi driver NVIDIA yang lebih baru, Anda dapat menginstalnya secara manual pada node kluster. Topik ini menjelaskan cara menentukan versi driver NVIDIA untuk node yang dipercepat GPU dalam kelompok node dengan menambahkan URL Object Storage Service (OSS).
Perhatian
ACK tidak menjamin kompatibilitas antara versi driver NVIDIA dan versi toolkit CUDA. Anda perlu memverifikasi kompatibilitas keduanya.
Untuk informasi selengkapnya tentang versi driver NVIDIA yang diperlukan oleh berbagai model NVIDIA, lihat dokumentasi resmi NVIDIA.
Untuk citra OS kustom yang telah diinstal dengan driver NVIDIA dan komponen GPU seperti NVIDIA Container Runtime, ACK tidak menjamin kompatibilitas driver NVIDIA dengan komponen GPU lainnya, seperti komponen pemantauan.
Jika Anda menambahkan label ke kelompok node untuk menentukan versi driver NVIDIA bagi node yang dipercepat GPU, proses instalasi driver akan dipicu saat node ditambahkan. Oleh karena itu, hal ini hanya berlaku untuk node yang baru diskalakan atau baru ditambahkan, dan node yang sudah ada tidak akan terpengaruh. Untuk menerapkan driver baru pada node yang sudah ada, Anda perlu menghapus node tersebut dan menambahkan kembali node yang sudah ada.
Tipe instans gn7 dan ebmgn7 tidak kompatibel dengan versi driver NVIDIA 510.xxx dan 515.xxx. Untuk tipe instans ini, kami merekomendasikan agar Anda menggunakan versi driver sebelum 510.xxx yang memiliki GPU System Processor (GSP) dinonaktifkan, seperti 470.xxx.xxxx, atau versi 525.125.06 atau yang lebih baru.
Tipe instans Elastic Compute Service (ECS) ebmgn7 atau ebmgn7e hanya mendukung versi driver NVIDIA yang lebih baru dari 460.32.03.
Saat pembuatan kelompok node, jika versi driver yang ditentukan tidak tercantum dalam versi driver NVIDIA yang didukung oleh ACK, ACK akan secara otomatis menginstal versi driver default. Menentukan versi driver yang tidak kompatibel dengan OS terbaru dapat menyebabkan kegagalan penambahan node. Dalam kasus seperti ini, selalu pilih versi driver terbaru yang didukung.
Jika Anda menggunakan driver NVIDIA yang diunggah ke bucket OSS, driver NVIDIA tersebut mungkin tidak kompatibel dengan OS, tipe instans Elastic Compute Service (ECS), atau runtime kontainer. Akibatnya, node yang dipercepat GPU yang diinstal dengan driver NVIDIA gagal ditambahkan. ACK tidak menjamin bahwa semua node dapat berhasil ditambahkan ke kluster.
Langkah 1: Unduh driver NVIDIA
Jika daftar versi driver NVIDIA yang didukung oleh ACK tidak mencakup versi driver NVIDIA yang Anda inginkan, unduh driver tersebut dari situs resmi NVIDIA. Dalam contoh ini, versi driver NVIDIA adalah 550.90.07. Unduh driver NVIDIA-Linux-x86_64-550.90.07.run ke mesin lokal Anda.
Langkah 2: Unduh NVIDIA Fabric Manager
Unduh NVIDIA Fabric Manager dari repositori NVIDIA YUM. Pastikan versi NVIDIA Fabric Manager sesuai dengan versi driver NVIDIA.
wget https://developer.download.nvidia.cn/compute/cuda/repos/rhel7/x86_64/nvidia-fabric-manager-550.90.07-1.x86_64.rpmLangkah 3: Buat bucket OSS
Masuk ke Konsol OSS dan buat bucket OSS. Untuk informasi selengkapnya, lihat Buat bucket.
Kami merekomendasikan membuat bucket OSS di wilayah yang sama dengan kluster ACK Anda, karena kluster ACK perlu menarik driver dari bucket OSS melalui jaringan internal saat menginstal driver NVIDIA.
Langkah 4: Unggah driver NVIDIA dan nvidia-fabric-manager ke bucket OSS
Masuk ke Konsol OSS dan unggah file
NVIDIA-Linux-x86_64-550.90.07.rundannvidia-fabric-manager-550.90.07-1.x86_64.rpmke direktori root bucket.PentingPastikan file diunggah ke direktori root bucket, bukan ke subdirektori.
Di panel navigasi sebelah kiri halaman bucket, pilih , lalu klik Details di kolom Actions pada file driver yang telah Anda unggah untuk melihat detailnya.
Di panel Details, nonaktifkan HTTPS.
PentingSaat ACK membuat kluster, driver NVIDIA ditarik dari URL HTTP. Secara default, bucket OSS menggunakan HTTPS. Oleh karena itu, Anda perlu menonaktifkan HTTPS.
Di panel navigasi sebelah kiri halaman detail bucket, klik Overview untuk mendapatkan titik akhir internal bucket.
PentingProses menarik driver NVIDIA dari titik akhir eksternal berlangsung lambat, dan ACK mungkin gagal menambahkan node yang dipercepat GPU ke kluster. Kami merekomendasikan agar Anda menarik driver NVIDIA dari titik akhir internal (dengan kata kunci -internal) atau nama domain yang dipercepat (dengan kata kunci oss-accelerate).
Jika Anda mengalami kegagalan pengambilan file, rujuk ke kontrol akses OSS untuk mengubah kebijakan kontrol akses bucket.
Langkah 5: Konfigurasi label kelompok node
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang ingin dikelola lalu klik namanya. Di panel navigasi sebelah kiri, pilih .
Klik Create Node Pool di pojok kiri atas, lalu tambahkan node yang dipercepat GPU. Untuk informasi selengkapnya mengenai parameter, lihat Buat dan kelola kelompok node. Konfigurasi utamanya adalah sebagai berikut.
Pada bagian Node Labels, klik ikon
untuk menambahkan label berikut dan sesuaikan nilainya.Key
Value
ack.aliyun.com/nvidia-driver-oss-endpointLangkah 4.
my-nvidia-driver.oss-cn-beijing-internal.aliyuncs.comack.aliyun.com/nvidia-driver-runfileLangkah 1.
NVIDIA-Linux-x86_64-550.90.07.runack.aliyun.com/nvidia-fabricmanager-rpmLangkah 2.
nvidia-fabric-manager-550.90.07-1.x86_64.rpm
Langkah 6: Periksa apakah versi driver NVIDIA yang ditentukan telah diinstal
Jalankan perintah berikut untuk mengkueri Pod yang memiliki label
component: nvidia-device-plugin:kubectl get po -n kube-system -l component=nvidia-device-plugin -o wideOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nvidia-device-plugin-cn-beijing.192.168.1.127 1/1 Running 0 6d 192.168.1.127 cn-beijing.192.168.1.127 <none> <none> nvidia-device-plugin-cn-beijing.192.168.1.128 1/1 Running 0 17m 192.168.1.128 cn-beijing.192.168.1.128 <none> <none> nvidia-device-plugin-cn-beijing.192.168.8.12 1/1 Running 0 9d 192.168.8.12 cn-beijing.192.168.8.12 <none> <none> nvidia-device-plugin-cn-beijing.192.168.8.13 1/1 Running 0 9d 192.168.8.13 cn-beijing.192.168.8.13 <none> <none>Output tersebut menunjukkan bahwa nama Pod pada node yang baru ditambahkan di kolom NODE adalah
nvidia-device-plugin-cn-beijing.192.168.1.128.Jalankan perintah berikut untuk mengkueri versi driver NVIDIA pada node tersebut:
kubectl exec -ti nvidia-device-plugin-cn-beijing.192.168.1.128 -n kube-system -- nvidia-smiOutput yang diharapkan:
+-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 550.90.07 Driver Version: 550.90.07 CUDA Version: 12.4 | |-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 Tesla P100-PCIE-16GB On | 00000000:00:08.0 Off | Off | | N/A 31C P0 26W / 250W | 0MiB / 16384MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | No running processes found | +-----------------------------------------------------------------------------------------+Output tersebut menunjukkan bahwa versi driver NVIDIA adalah 550.90.07. Driver NVIDIA yang ditentukan telah diinstal.
Metode lainnya
Saat menggunakan CreateClusterNodePool untuk membuat kelompok node, Anda dapat menambahkan URL OSS driver NVIDIA ke dalam konfigurasi kelompok node. Berikut contoh kodenya:
{
// Bidang lainnya tidak ditampilkan.
......
"tags": [
{
"key": "ack.aliyun.com/nvidia-driver-oss-endpoint",
"value": "xxxx"
},
{
"key": "ack.aliyun.com/nvidia-driver-runfile",
"value": "xxxx"
},
{
"key": "ack.aliyun.com/nvidia-fabricmanager-rpm",
"value": "xxxx"
}
],
// Bidang lainnya tidak ditampilkan.
......
}