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.
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.
- Clone the repository and into the project directory
$ git clone https://gitee.com/deep-spark/ix-feature-discovery.git
$ cd ix-feature-discovery- Build the executable binary to the "build" directory
$ make binary
$ ls build/ix-feature-discovery
build/ix-feature-discovery- 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.1Note: the image name is corresponding to the image in daemonset yaml, don't make it change at will.
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.2Note: 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 RunningThe next step is to run IX Feature Discovery on each node as a Daemonset.
$ sudo kubectl apply -f deployment/static/ix-feature-discovery.yamlCheck 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 RunningWith 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
...
...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 |
Copyright (c) 2025 Iluvatar CoreX. All rights reserved. This project has an Apache-2.0 license, as found in the LICENSE file.