Jika pustaka CUDA Anda memerlukan versi baru driver NVIDIA, Anda dapat memperbarui driver NVIDIA pada node dengan menghapus versi saat ini dan menginstal yang baru. Topik ini menjelaskan cara memperbarui driver NVIDIA pada sebuah node.
Langkah 1: Putuskan koneksi node dari kluster dan kosongkan node
Jalankan perintah berikut untuk menetapkan node GPU yang drivernya ingin diperbarui menjadi tidak dapat dijadwalkan:
kubectl cordon <NODE_NAME>Ganti <NODE_NAME> dengan nama node.
Keluaran yang diharapkan:
node/<NODE_NAME> cordonedJalankan perintah berikut untuk mengosongkan pod pada node GPU:
kubectl drain <NODE_NAME> --grace-period=120 --ignore-daemonsets=true # Tetapkan periode tenggang untuk mengosongkan pod menjadi 120 detik.Keluaran yang diharapkan:
Ada node tertunda yang harus dikosongkan: <NODE_NAME>
Langkah 2: Uninstal driver NVIDIA saat ini dari node yang dipercepat GPU
Masuk ke node dan jalankan perintah berikut untuk menghentikan layanan kubelet dan containerd pada node. Beberapa pod DaemonSet menggunakan sumber daya GPU, sehingga perintah kubectl drain tidak dapat mengosongkannya. Anda perlu menghentikan layanan kubelet dan containerd terlebih dahulu sebelum melanjutkan.
sudo systemctl stop kubelet containerdMasuk ke node dan jalankan perintah fuser untuk memeriksa apakah ada proses yang menggunakan sumber daya GPU. Jika ada, jalankan perintah kill untuk menghentikan proses tersebut. Selama pembaruan driver NVIDIA, proses tidak diizinkan menggunakan sumber daya GPU.
sudo fuser -v /dev/nvidia*Jika tidak ada keluaran yang ditampilkan, tidak ada proses yang menggunakan sumber daya GPU. Dalam contoh berikut, proses 3781 sedang menggunakan sumber daya GPU.
USER PID ACCESS COMMAND /dev/nvidia0: root 3781 F.... dcgm-exporter /dev/nvidiactl: root 3781 F...m dcgm-exporterDalam hal ini, Anda perlu menghentikan proses tersebut.
sudo kill 3781Jalankan perintah fuser lagi untuk memeriksa apakah ada proses yang masih menggunakan sumber daya GPU dan ulangi langkah sebelumnya hingga semua proses dihentikan.
Masuk ke node dan uninstall driver NVIDIA.
sudo nvidia-uninstall(Opsional) Uninstal nvidia fabric manager.
Jalankan perintah berikut untuk memeriksa apakah nvidia fabric manager terinstal pada node:
sudo rpm -qa | grep ^nvidia-fabric-managerJika tidak ada keluaran yang ditampilkan, nvidia fabric manager tidak terinstal. Jika terinstal, jalankan perintah berikut untuk menguninstalnya:
yum remove nvidia-fabric-manager
Langkah 3: Instal versi baru driver NVIDIA pada node
Unduh versi driver baru dari situs resmi NVIDIA ke node, lalu jalankan perintah berikut untuk menginstalnya. Dalam contoh ini, NVIDIA-Linux-x86_64-510.108.03.run diinstal.
sudo bash NVIDIA-Linux-x86_64-510.108.03.run -a -s -qJalankan perintah berikut untuk memeriksa apakah versi driver baru telah terinstal:
sudo nvidia-smiKeluaran menunjukkan bahwa versi drivernya adalah 510.108.03.
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 510.108.03 Driver Version: 510.108.03 CUDA Version: 11.6 | |-------------------------------+----------------------+----------------------+ | 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 V100-SXM2... Off | 00000000:00:07.0 Off | 0 | | N/A 35C P0 40W / 300W | 0MiB / 32768MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+Konfigurasikan pengaturan berikut:
sudo nvidia-smi -pm 1 || true # Aktifkan mode Persistensi. sudo nvidia-smi -acp 0 || true # Tetapkan persyaratan izin ke TIDAK TERBATAS. sudo nvidia-smi --auto-boost-default=0 || true # Nonaktifkan mode dorongan otomatis. Nilai 0 menunjukkan bahwa mode dorongan otomatis dinonaktifkan. sudo nvidia-smi --auto-boost-permission=0 || true # Izinkan pengguna selain administrator untuk mengontrol mode dorongan otomatis. Nilai 0 menunjukkan bahwa pengguna selain administrator diizinkan untuk mengontrol mode dorongan otomatis. Nilai 1 menunjukkan bahwa pengguna selain administrator tidak diizinkan untuk mengontrol mode dorongan otomatis. sudo nvidia-modprobe -u -c=0 -m || true # Muat modul kernel NVIDIA dengan file konfigurasi nomor file tertentu.(Opsional) Jika Anda ingin driver NVIDIA dimuat secara otomatis saat boot, pastikan file /etc/rc.d/rc.local berisi konfigurasi berikut:
sudo nvidia-smi -pm 1 || true sudo nvidia-smi -acp 0 || true sudo nvidia-smi --auto-boost-default=0 || true sudo nvidia-smi --auto-boost-permission=0 || true sudo nvidia-modprobe -u -c=0 -m || trueJalankan perintah berikut untuk memeriksa apakah Anda perlu menginstal nvidia fabric manager pada node:
sudo lspci | grep -i 'Bridge:.*NVIDIA'Jika tidak ada keluaran yang dikembalikan, Anda tidak perlu menginstal nvidia fabric manager. Jika perlu, unduh nvidia fabric manager dari repositori YUM NVIDIA ke node. Pastikan versi nvidia fabric manager sama dengan versi driver NVIDIA baru.
Jalankan perintah berikut untuk menginstal dan meluncurkan nvidia fabric manager:
# Instal nvidia fabric manager. sudo yum localinstall nvidia-fabric-manager-510.108.03-1.x86_64.rpm # Aktifkan nvidia fabric manager untuk mulai saat boot. systemctl enable nvidia-fabricmanager.service # Mulai nvidia fabric manager. systemctl start nvidia-fabricmanager.serviceAktifkan layanan kubelet dan containerd.
sudo systemctl restart containerd kubelet
Langkah 4: Hubungkan node ke kluster
Jalankan perintah berikut untuk menghubungkan node ke kluster: Ganti <NODE_NAME> dengan nama node.
sudo kubectl uncordon <NODE_NAME>