Ganti driver NVIDIA pada node ACK yang dipercepat GPU jika CUDA memerlukan versi driver yang lebih baru.
Prasyarat
Pastikan Anda telah memiliki:
-
kubectlyang dikonfigurasi dengan akses ke kluster -
Akses SSH ke node target yang dipercepat GPU
-
File
.rundriver NVIDIA baru yang telah diunduh dari situs resmi NVIDIA ke node tersebut -
(Bersyarat) Paket
.rpmNVIDIA Fabric Manager yang sesuai, jika diperlukan — lihat Langkah 3, sublangkah 5
Langkah 1: Cordon dan drain node
-
Tandai node yang dipercepat GPU sebagai tidak dapat dijadwalkan:
kubectl cordon <NODE_NAME>Ganti
<NODE_NAME>dengan nama node target. Output yang diharapkan:node/<NODE_NAME> cordoned -
Kosongkan Pod workload dari node:
kubectl drain <NODE_NAME> --grace-period=120 --ignore-daemonsets=true--grace-period=120memberikan waktu hingga 120 detik bagi Pod untuk melakukan shutdown yang mulus.--ignore-daemonsets=truemelewatkan Pod yang dikelola oleh DaemonSet, yang akan ditangani pada langkah berikutnya. Output yang diharapkan:There are pending nodes to be drained: <NODE_NAME>
Langkah 2: Uninstal driver NVIDIA saat ini
-
Login ke node dan hentikan kubelet serta containerd. Tindakan ini menghentikan Pod DaemonSet yang masih menggunakan referensi GPU yang tidak dapat dievakuasi oleh
kubectl drain.sudo systemctl stop kubelet containerd -
Periksa proses yang masih menggunakan perangkat GPU:
sudo fuser -v /dev/nvidia*Tidak ada output berarti tidak ada proses yang memegang referensi GPU — lanjutkan ke sublangkah berikutnya. Jika muncul output, hentikan setiap proses yang tercantum. Contohnya:
USER PID ACCESS COMMAND /dev/nvidia0: root 3781 F.... dcgm-exporter /dev/nvidiactl: root 3781 F...m dcgm-exporterHentikan proses tersebut:
sudo kill 3781Jalankan kembali
sudo fuser -v /dev/nvidia*hingga tidak ada proses yang tersisa. -
Uninstal driver NVIDIA saat ini:
sudo nvidia-uninstall -
(Opsional) Uninstal NVIDIA Fabric Manager jika telah terinstal. Periksa apakah sudah terinstal:
sudo rpm -qa | grep ^nvidia-fabric-managerTidak ada output berarti NVIDIA Fabric Manager belum terinstal — lewati langkah ini. Jika terinstal, uninstal dengan perintah berikut:
yum remove nvidia-fabric-manager
Langkah 3: Instal driver NVIDIA baru pada node
-
Instal driver baru. Contoh dengan
NVIDIA-Linux-x86_64-510.108.03.run:sudo bash NVIDIA-Linux-x86_64-510.108.03.run -a -s -q -
Verifikasi instalasi:
sudo nvidia-smiOutput menampilkan versi driver baru. Contoh untuk
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 | +-----------------------------------------------------------------------------+ -
Terapkan pengaturan pasca-instalasi yang diperlukan:
sudo nvidia-smi -pm 1 || true # Aktifkan mode Persistence sudo nvidia-smi -acp 0 || true # Atur izin menjadi UNRESTRICTED sudo nvidia-smi --auto-boost-default=0 || true # Nonaktifkan mode auto boost sudo nvidia-smi --auto-boost-permission=0 || true # Izinkan pengguna non-admin mengontrol mode auto boost sudo nvidia-modprobe -u -c=0 -m || true # Muat modul kernel unified memory NVIDIA dan buat file perangkat -
(Opsional) Untuk memuat driver NVIDIA saat boot, pastikan
/etc/rc.d/rc.localberisi: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 || true -
Periksa apakah NVIDIA Fabric Manager diperlukan — node dengan interkoneksi multi-GPU berbasis NVSwitch membutuhkannya.
sudo lspci | grep -i 'Bridge:.*NVIDIA'Tidak ada output berarti NVIDIA Fabric Manager tidak diperlukan. Jika muncul output, unduh paket NVIDIA Fabric Manager yang sesuai dari repositori YUM NVIDIA. Versi paket harus sesuai dengan versi driver. Instal dan jalankan NVIDIA Fabric Manager:
# Instal NVIDIA Fabric Manager sudo yum localinstall nvidia-fabric-manager-510.108.03-1.x86_64.rpm # Aktifkan NVIDIA Fabric Manager saat boot systemctl enable nvidia-fabricmanager.service # Jalankan NVIDIA Fabric Manager systemctl start nvidia-fabricmanager.service -
Restart kubelet dan containerd:
sudo systemctl restart containerd kubelet
Langkah 4: Kembalikan node ke kluster
Tandai node sebagai dapat dijadwalkan:
sudo kubectl uncordon <NODE_NAME>
Ganti <NODE_NAME> dengan nama node Anda. Kubernetes akan melanjutkan penjadwalan Pod pada node tersebut.