Drivers for GPU node groups in a Managed Kubernetes cluster
You can create Managed Kubernetes clusters on a cloud server with GPU:
- with pre-installed drivers — kernel modules in pre-installed drivers depend on the GPU architecture;
- without pre-installed drivers — you choose and install drivers yourself. For GPU node groups without drivers, cluster autoscaling is not available.
Kernel modules in pre-installed drivers
Kernel modules in pre-installed drivers can be:
- proprietary — used in GPUs with Pascal, Maxwell, and Volta architecture;
- open-source — used in GPUs with Turing architecture and all subsequent architecture generations.
Among the available GPUs, only the NVIDIA® GTX 1080 GPU with Pascal architecture has proprietary kernel modules, while the others are open-source.
Learn more about kernel modules in the Kernel Modules guide of the NVIDIA® documentation.
Install drivers
To install the driver yourself, use the NVIDIA® GPU Operator application.
-
Install the Helm package manager version 3.7.0 or higher.
-
Add the
nvidiarepository to Helm:helm repo add nvidia https://helm.ngc.nvidia.com/nvidia -
Update the
nvidiarepository in Helm:helm repo update -
Install NVIDIA GPU Operator and specify the required GPU driver version:
helm install \--namespace gpu-operator \--create-namespace \--set driver.version=<driver_version> \gpu-operator nvidia/gpu-operatorSpecify
<driver_version>— the NVIDIA® driver version. You can find it in the NVIDIA GPU Driver row of the GPU Operator Component Matrix table in the NVIDIA® documentation. -
To verify that NVIDIA GPU Operator and the GPU driver are installed correctly, run a GPU application. For example, the CUDA VectorAdd vector addition application:
cat << EOF | kubectl create -f -apiVersion: v1kind: Podmetadata:name: cuda-vectoraddspec:restartPolicy: OnFailurecontainers:- name: cuda-vectoraddimage: "nvidia/samples:vectoradd-cuda11.2.1"resources:limits:nvidia.com/gpu: 1EOF -
Make sure that the CUDA VectorAdd application has finished running — the pod status must be
Completed:kubectl get podsIn the response, the
cuda-vectoraddpod will have the statusCompleted:NAME READY STATUS RESTARTS AGEcuda-vectoradd 0/1 Completed 0 51s