Skip to content

IX Feature Discovery for Kubernetes is a software component that allows you to automatically generate labels for the set of Iluvatar CoreX GPUs available on a node.

License

Notifications You must be signed in to change notification settings

Deep-Spark/ix-feature-discovery

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IX Feature Discovery

IX Feature Discovery for Kubernetes is a software component that allows you to automatically generate labels for the set of IX GPUs available on a node.

Prerequisites

The list of prerequisites for running the IX Featyre Discovery is described below:

  • Kubernetes version >= 1.22
  • All worker nodes must run the same operating system version.
  • IX driver pre-installed.
  • Make sure the IX GPUs have been installed if you want to see the labels for the set of IX GPUs.
  • Node Feature Discovery (NFD) deployed on each node you want to label with the local source configured.

Quick Start

Build binary and image

  1. Clone the repository and into the project directory
$ git clone https://gitee.com/deep-spark/ix-feature-discovery.git
$ cd ix-feature-discovery
  1. Build the executable binary to the "build" directory
$ make binary
$ ls build/ix-feature-discovery 
build/ix-feature-discovery
  1. Build the image
## build the image with default registry and version
$ make image
...
Successfully built d5db897cf230
Successfully tagged iluvatarcorex/ix-feature-discovery:v0.1.0
 
## build the image with customize registry and version 
$ REGISTRY=my-registry VERSION=v0.2.1 make image
...
Successfully built d5db897cf230
Successfully tagged my-registry/ix-feature-discovery:v0.2.1

Note: the image name is corresponding to the image in daemonset yaml, don't make it change at will.

Node Feature Discovery (NFD)

The first step is to make sure that Node Feature Discovery is running on every node you want to label.

The following command will deploy NFD in your cluster by minimal steps. (see Quick Start)

$ sudo kubectl apply -k https://github.com/kubernetes-sigs/node-feature-discovery/deployment/overlays/default?ref=v0.14.2

Note: Please see the instructions below for Deployment via helm when deploying in a production setting.

Check if node-feature-discovery is deployed successfully in kubernetes cluster.

$ sudo kubectl get pods -n node-feature-discovery
NAME                         READY   STATUS 
nfd-master-55b47d658-c64vf   1/1     Running
nfd-worker-thgdj             1/1     Running

Deploy IX Feature Discovery

The next step is to run IX Feature Discovery on each node as a Daemonset.

$ sudo kubectl apply -f deployment/static/ix-feature-discovery.yaml

Check if ix-feature-discovery is deployed successfully in kubernetes cluster:

$ sudo kubectl get pods -n node-feature-discovery
NAME                         READY   STATUS 
ix-feature-discovery-stzt5   1/1     Running   
nfd-master-55b47d658-c64vf   1/1     Running
nfd-worker-thgdj             1/1     Running

Verifying Everything Works

With both NFD and IX-Feature-Discovery deployed and running, you should now be able to see IX related labels appearing on any nodes that have IX GPUs installed on them.

$ kubectl get nodes -o yaml
apiVersion: v1
items:
- apiVersion: v1
  kind: Node
  metadata:
    ...

    labels:
      iluvatar.com/cuda.runtime-version.full=10.2
      iluvatar.com/cuda.runtime-version.major=10
      iluvatar.com/cuda.runtime-version.minor=2
      iluvatar.com/gpu.count=2
      iluvatar.com/gpu.machine=X580-G30
      iluvatar.com/gpu.memory=32768
      iluvatar.com/gpu.product=BI-V150S
      iluvatar.com/ix.driver-version.full=4.1.0
      iluvatar.com/ix.driver-version.major=4
      iluvatar.com/ix.driver-version.minor=1
      iluvatar.com/ix.driver-version.revision=0
      iluvatar.com/ix.timestamp=1731665058
      ...
...

Generated Labels

Below is the list of the labels generated by IX Feature Discovery and their description.

Label Description
iluvatar.com/ix.timestamp=1731548913 Timestamp, the number of seconds elapsed since January 1, 1970 UTC.
iluvatar.com/ix.driver-version.full=4.2.0 Full IX driver version
iluvatar.com/ix.driver-version.major=4 Major version of IX driver version
iluvatar.com/ix.driver-version.minor=2 Minor version of IX driver version
iluvatar.com/ix.driver-version.revision=0 Revision of IX driver version
iluvatar.com/cuda.runtime-version.full=10.2 Full CUDA runtime version
iluvatar.com/cuda.runtime-version.major=10 Major version of CUDA runtime version
iluvatar.com/cuda.runtime-version.minor=2 Minor version of CUDA runtime version
iluvatar.com/gpu.present=true Node has GPU available
iluvatar.com/gpu.machine=X580-G30 Machine Type
iluvatar.com/gpu.product=BI-V150S GPU Model
iluvatar.com/gpu.count=2 GPU Count
iluvatar.com/gpu.memory=32768 GPU Memory, Unit MB

License

Copyright (c) 2025 Iluvatar CoreX. All rights reserved. This project has an Apache-2.0 license, as found in the LICENSE file.

About

IX Feature Discovery for Kubernetes is a software component that allows you to automatically generate labels for the set of Iluvatar CoreX GPUs available on a node.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •