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 select and install drivers yourself. GPU node groups without drivers do not support cluster autoscaling.
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-based architecture has proprietary kernel modules, while the rest have open-source ones.
For more information about kernel modules, see the Kernel Modules section in the NVIDIA® documentation.
Install drivers
To install the driver yourself, use NVIDIA® GPU Operator.
-
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>— 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 completed successfully — the pod status should 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