Kubernetes Intel GPU Device Plugin Configuration

This document describes how to enable the Intel GPU device plugin in StarlingX and schedule pods on nodes with an Intel GPU.

Enable Intel GPU device plugin

You can pre-install the intel-gpu-plugin daemonset as follows:

  1. Launch the intel-gpu-plugin daemonset.

    Add the following lines to the localhost.yaml file before playing the Ansible bootstrap playbook to configure the system.

    k8s_plugins:
      intel-gpu-plugin: intelgpu=enabled
    
  2. Assign the intelgpu label to each node that should have the Intel GPU plugin enabled. This will make any GPU devices on a given node available for scheduling to containers. The following example assigns the intelgpu label to the worker-0 node.

    $ NODE=worker-0
    $ system host-lock $NODE
    $ system host-label-assign $NODE intelgpu=enabled
    $ system host-unlock $NODE
    
  3. After the node becomes available, verify the GPU device plugin is registered and that the available GPU devices on the node have been discovered and reported.

    $ kubectl describe node $NODE | grep gpu.intel.com
    gpu.intel.com/i915:  1
    gpu.intel.com/i915:  1
    

Schedule pods on nodes with Intel GPU

Add a resources.limits.gpu.intel.com to your container specification in order to request an available GPU device for your container.

...
spec:
  containers:
    - name: ...
      ...
      resources:
        limits:
          gpu.intel.com/i915: 1

The pods will be scheduled to the nodes with available Intel GPU devices. A GPU device will be allocated to the container and the available GPU devices will be updated.

$ kubectl describe node $NODE | grep gpu.intel.com
gpu.intel.com/i915:  1
gpu.intel.com/i915:  0

For more details, refer to the following examples: