技术文档

Technical documentation
目录

OrionX 在 OpenShift 上的集成指南

简介

OrionX 是一套 GPU 资源池化与虚拟化解决方案,支持多种调度方式与硬件资源配置方式。本文档旨在指导用户如何在 Red Hat OpenShift 平台上集成部署 OrionX,实现 GPU 的精细化分配与跨节点调度。

系统环境要求

依赖组件

  • OpenShift 版本 >= 4.x
  • NVIDIA GPU 驱动已安装并正确加载
  • NVIDIA Container Toolkit 安装完毕
  • containerd 或 CRI-O 作为容器运行时,支持 NVIDIA runtime
  • 所有 GPU 节点需具备统一的网络接口名(如 eth0)
  • Red Hat 系统需启用以下软件包:kernel-devel、gcc、make、libibverbs、numactl

集成步骤

第一步:准备镜像与资源目录

在所有准备集成的 OpenShift 节点中,创建资源存放目录:

mkdir -p /root/orion/{controller,server,client,gpu-monitor}

上传并解压 OrionX 提供的安装包,并将对应的 tar 镜像包、脚本文件解压至对应目录中。

第二步:部署 GPU Monitor(可选)

cd /root/orion/gpu-monitor
gunzip dcgm-exporter.tar.gz | podman load
./run-nvidia-exportor.sh

此服务用于采集 GPU 物理利用率,如已有 Prometheus/Grafana,可忽略部署。

第三步:部署 OrionX Controller

  1. 获取激活文件 license.txt,放入 /root/orion/controller/
  2. 加载镜像并运行服务:
cd /root/orion/controller
gunzip orion-controller-ent-2.2.tar.gz | podman load
gunzip prometheus.tar.gz | podman load
./run-controller.sh
  1. 修改配置文件 prometheus.yml,确保 static_configs 的 targets 与 GPU 节点的 bind_addr 匹配。

第四步:在 GPU/CPU 节点部署 OrionX Server

cd /root/orion/server
sudo ./install-server.sh
	 
#编辑配置文件 /etc/orion/server.conf,重点参数如下:
[controller]
controller_addr = <Controller_IP>:9123
	 
[server]
bind_addr = <本机内网IP>
vgpu_count = 4
enable_rdma = true
enable_shm = true
enable_kvm = true
	 
#启动服务:
sudo systemctl enable --now oriond

第五步:部署 OrionX Client 到用户容器

OpenShift 使用 CRI-O 容器运行时,确保 NVIDIA runtime 已启用。

#安装 Client
cd /root/orion/client
sudo ./install-client-10.1   # CUDA 版本按需选择
	 
#设置环境变量
export ORION_VGPU=2
export ORION_GMEM=4096
export ORION_RATIO=100
export ORION_CONTROLLER=<Controller_IP>:9123
	 
#启动测试 CUDA 程序
/root/cuda_samples/deviceQuery/deviceQuery

第六步:在 OpenShift 中定义 Deployment(示例)

apiVersion: apps/v1
kind: Deployment
metadata:
	name: orion-client-test
spec:
	replicas: 1
	selector:
		matchLabels:
			app: orion-client
	template:
		metadata:
			labels:
				app: orion-client
		spec:
			containers:
			- name: test
				image: virtaitech/orion-client-2.2:cuda10.1-tf1.14-py3.6-hvd
				env:
				- name: ORION_VGPU
					value: "2"
				- name: ORION_GMEM
					value: "4096"
				- name: ORION_RATIO
					value: "100"
				- name: ORION_RESERVED
					value: "0"
				- name: ORION_CROSS_NODE
					value: "0"
				resources:
					limits:
						virtaitech.com/gpu: 2
			nodeSelector:
				kubernetes.io/hostname: <gpu-node-name>
			tolerations:
			- key: nvidia.com/gpu
				operator: Exists
				effect: NoSchedule

注意事项

  1. 必须统一 GPU 节点上的网络接口名,如 eth0。
  2. license.txt 文件必须与版本匹配,否则组件无法正常启动。
  3. OpenShift 上部署需确保 SCC 策略允许容器使用 hostIPC 与挂载必要路径。

常见问题

  1. 日志查看路径
  • Controller 日志:容器内 /root/controller.log
  • Client 日志:$/.orion/log/
  • Server 配置:/etc/orion/server.conf
  1. 网络不可达问题
  • 检查 bind_addr 对应的网卡是否在 node 中存在并配置了 IP。
  1. License 无效问题
  • 确认激活文件是否为最新版本,使用文本工具检查是否出现乱码或拷贝错误。