Aperture Prometheus
Aperture Prometheus

Reputation: 175

How to pass Docker CLI `--gpus` Options in Kubernetes or enable GPU support without installing `nvidia-docker2` (Docker 19.03)

I'm currently using Docker 19.03 and Kubernetes 1.13.5 and Rancher 2.2.4. Since 19.03, Docker has officially support natively NVIDIA GPUs just by passing --gpus option. Example (from NVIDIA/nvidia-docker github):

 docker run --gpus all nvidia/cuda nvidia-smi

But in Kubernetes, there's no option to pass Docker CLI options. So if I need to run a GPU instance, I have to install nvidia-docker2, which is not convenient to use.

Is there anyway to pass the Docker CLI options or passing NVIDIA runtime without installing nvidia-docker2

Upvotes: 5

Views: 3851

Answers (1)

Matt
Matt

Reputation: 74909

GPU's are scheduled via device plugins in Kubernetes.

The official NVIDIA GPU device plugin has the following requirements:

  • Kubernetes nodes have to be pre-installed with NVIDIA drivers.
  • Kubernetes nodes have to be pre-installed with nvidia-docker 2.0
  • nvidia-container-runtime must be configured as the default runtime for docker instead of runc.
  • NVIDIA drivers ~= 361.93

Once the nodes are setup GPU's become another resource in your spec like cpu or memory.

spec:
  containers:
  - name: gpu-thing
    image: whatever
    resources:
      limits:
        nvidia.com/gpu: 1

Upvotes: 4

Related Questions